This might seem like a large patch, but it isn't that bad, and nothing
authorTor Lillqvist <tml@src.gnome.org>
Mon, 15 Mar 1999 00:03:37 +0000 (00:03 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 15 Mar 1999 00:03:37 +0000 (00:03 +0000)
should break on Unix/X11.

Win32 merge and general portability stuff:

* acconfig.h,configure.in: Check for <sys/time.h>.

* gdk/win32: New directory (actually, been there for a while).

* gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
NATIVE_WIN32, and use these. Always case fold on Win32. No
backslashed escapes on native Win32.

* gtk/{gtk.def,makefile.msc}: New files.

* gtk/Makefile.am: Add above new files.

* gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
instead of <strings.h>.

* gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
<unistd.h> appropriately.

* gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
Use ABS() (from <glib.h>) instead of abs().

* gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
of gtk (and thus glib) headers, so that WIN32 will be
defined. With MS C, include <direct.h> for mkdir prototype.

* gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
some casts, needed by MS C.

* gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
implemented).

* gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
<X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
G_SEARCHPATH_SEPARATOR_S and g_module_build_path.

* gtk/gtkmain.h: Mark variables for export/import on Win32.

* gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
the event is not a hint, or its window is not the slider. Needed
on Win32, at least.

* gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
a subdirectory of the Windows directory as gtk system
configuration directory.

* gtk/gtkselection.c: No chunks on Win32.

* gtk/gtksocket.c: Not implemented on Win32.

* gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.

* gtk/makeenums.h: Include gdkprivate.h after gdk.h.

* gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.

37 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
acconfig.h
config.h.win32 [new file with mode: 0755]
configure.in
gdk/win32/gdkglobals-win32.c
gdk/win32/gdkglobals.c
gdk/win32/gdkrgb.c
gdk/win32/gdktypes.h
gdk/win32/makefile.msc [new file with mode: 0644]
gtk/Makefile.am
gtk/fnmatch.c
gtk/gtk.def [new file with mode: 0755]
gtk/gtkcalendar.c
gtk/gtkdnd.c
gtk/gtkfilesel.c
gtk/gtkitemfactory.c
gtk/gtklayout.c
gtk/gtkmain.c
gtk/gtkmain.h
gtk/gtkplug.c
gtk/gtkpreview.c
gtk/gtkrange.c
gtk/gtkrc.c
gtk/gtkselection.c
gtk/gtksocket.c
gtk/gtkthemes.c
gtk/makeenums.h
gtk/makefile.msc [new file with mode: 0755]
gtk/maketypes.awk
gtk/testrgb.c
tests/testrgb.c

index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index dcb71f72208e43d2a7c36c120542dffed67825a1..36d55c52183c7ea27aac8153570a326e84c05c49 100644 (file)
@@ -1,3 +1,65 @@
+1999-03-15  Tor Lillqvist  <tml@iki.fi>
+
+       Win32 merge and general portability stuff:
+               
+       * acconfig.h,configure.in: Check for <sys/time.h>.
+
+       * gdk/win32: New directory (actually, been there for a while).
+       
+       * gtk/fnmatch.c: Include <glib.h> for G_DIR_SEPARATOR, WIN32 and
+       NATIVE_WIN32, and use these. Always case fold on Win32. No
+       backslashed escapes on native Win32.
+
+       * gtk/{gtk.def,makefile.msc}: New files.
+
+       * gtk/Makefile.am: Add above new files.
+       
+       * gtk/{gtkaccelgroup,gtkbindings}.c: Include <string.h>
+       instead of <strings.h>.
+
+       * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include
+       config.h. Protect inclusion of <sys/param.h>, <sys/time.h>, and
+       <unistd.h> appropriately.
+
+       * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much).
+       Use ABS() (from <glib.h>) instead of abs().
+       
+       * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion
+       of gtk (and thus glib) headers, so that WIN32 will be
+       defined. With MS C, include <direct.h> for mkdir prototype.
+
+       * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add
+       some casts, needed by MS C.
+
+       * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't
+       implemented).
+
+       * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include
+       <X11/Xlocale.h> only on X11 platform, otherwise <locale.h>.  Use
+       G_SEARCHPATH_SEPARATOR_S and g_module_build_path.
+
+       * gtk/gtkmain.h: Mark variables for export/import on Win32.
+               
+       * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case
+       the event is not a hint, or its window is not the slider. Needed
+       on Win32, at least.
+
+       * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use <locale.h>
+       unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and
+       G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use
+       a subdirectory of the Windows directory as gtk system
+       configuration directory.
+
+       * gtk/gtkselection.c: No chunks on Win32.
+
+       * gtk/gtksocket.c: Not implemented on Win32.
+
+       * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path.
+
+       * gtk/makeenums.h: Include gdkprivate.h after gdk.h.
+
+       * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers.
+
 1999-03-13  Raja R Harinath  <harinath@cs.umn.edu>
 
        * configure.in (gdk_wc): Move widechar tests from `glib' to here,
index bf75c4bf1939d5b3c2ca4782e11a05e5448a3ab0..7b8c41f6b5f83f4843889b0f0dc8e66aa29d4122 100644 (file)
@@ -29,6 +29,7 @@
 #undef HAVE_XSHM_H
 #undef HAVE_SHAPE_EXT
 #undef HAVE_SYS_SELECT_H
+#undef HAVE_SYS_TIME_H
 #undef HAVE_XCONVERTCASE
 
 #undef WITH_SYMBOL_UNDERSCORE
diff --git a/config.h.win32 b/config.h.win32
new file mode 100755 (executable)
index 0000000..4715292
--- /dev/null
@@ -0,0 +1,175 @@
+/* config.h.win32.  Handcrafted for Microsoft C */
+
+#ifndef _MSC_VER
+#error Unrecognized Win32 compiler, edit config.h.win32 by hand
+#endif
+
+/* Define if using alloca.c.  */
+/* #undef C_ALLOCA */
+
+/* Define to empty if the keyword does not work.  */
+/* #undef const */
+
+/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems.
+   This function is required for alloca.c support on those systems.  */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define if you have alloca, as a function or macro.  */
+#define HAVE_ALLOCA 1
+#define alloca _alloca
+
+/* Define if you have <alloca.h> and it should be used (not on Ultrix).  */
+/* #undef HAVE_ALLOCA_H */
+
+/* Define if you have a working `mmap' system call.  */
+/* #undef HAVE_MMAP */
+
+/* Define to empty, or __inline if that's what your compiler wants.  */
+#define inline __inline
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+/* #undef off_t */
+
+/* Define if you need to in order for stat and other things to work.  */
+/* #undef _POSIX_SOURCE*/
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE void
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown
+ */
+/* #undef STACK_DIRECTION */
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Other stuff */
+/* #undef ENABLE_NLS */
+#define GTK_COMPILED_WITH_DEBUGGING "minimum"
+
+/* #undef HAVE_CATGETS */
+/* #undef HAVE_DIRENT_H */
+/* #undef HAVE_GETTEXT */
+/* #undef HAVE_IPC_H */
+/* #undef HAVE_LC_MESSAGES */
+/* #undef HAVE_PWD_H */
+/* #undef HAVE_SHM_H */
+/* #undef HAVE_STPCPY */
+/* #undef HAVE_XSHM_H */
+#define HAVE_SHAPE_EXT 1
+/* #undef HAVE_SYS_SELECT_H */
+/* #undef HAVE_SYS_TIME_H */
+/* #undef HAVE_XCONVERTCASE */
+
+/* #undef NO_FD_SET */
+
+/* #undef XINPUT_NONE */
+/* #undef XINPUT_GXI */
+/* #undef XINPUT_XFREE */
+#define XINPUT_WIN32 1
+
+/* Define as the return type of signal handlers (int or void).  */
+#define RETSIGTYPE void
+
+/* Define if you have the __argz_count function.  */
+/* #undef HAVE___ARGZ_COUNT */
+
+/* Define if you have the __argz_next function.  */
+/* #undef HAVE___ARGZ_NEXT */
+
+/* Define if you have the __argz_stringify function.  */
+/* #undef HAVE___ARGZ_STRINGIFY */
+
+/* Define if you have the broken_wctype function.  */
+/* #undef HAVE_BROKEN_WCTYPE */
+
+/* Define if you have the dcgettext function.  */
+/* #undef HAVE_DCGETTEXT */
+
+/* Define if you have the getcwd function.  */
+#define HAVE_GETCWD 1
+
+/* Define if you have the getpagesize function.  */
+#define HAVE_GETPAGESIZE 1
+
+/* Define if you have the munmap function.  */
+/* #undef HAVE_MUNMAP */
+
+/* Define if you have the putenv function.  */
+#define HAVE_PUTENV 1
+#define putenv _putenv
+
+/* Define if you have the setenv function.  */
+/* #undef HAVE_SETENV */
+
+/* Define if you have the setlocale function.  */
+#define HAVE_SETLOCALE 1
+
+/* Define if you have the stpcpy function.  */
+/* #undef HAVE_STPCPY */
+
+/* Define if you have the strcasecmp function.  */
+#define HAVE_STRCASECMP 1
+#define strcasecmp stricmp
+
+/* Define if you have the strchr function.  */
+#define HAVE_STRCHR 1
+
+/* Define if you have the strdup function.  */
+#define HAVE_STRDUP 1
+
+/* Define if you have the <argz.h> header file.  */
+/* #undef HAVE_ARGZ_H */
+
+/* Define if you have the <dirent.h> header file.  */
+/* #undef HAVE_DIRENT_H */
+
+/* Define if you have the <limits.h> header file.  */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <locale.h> header file.  */
+#define HAVE_LOCALE_H 1
+
+/* Define if you have the <malloc.h> header file.  */
+#define HAVE_MALLOC_H 1
+
+/* Define if you have the <nl_types.h> header file.  */
+/* #undef HAVE_NL_TYPES_H */
+
+/* Define if you have the <pwd.h> header file.  */
+/* #undef HAVE_PWD_H */
+
+/* Define if you have the <string.h> header file.  */
+#define HAVE_STRING_H 1
+
+/* Define if you have the <sys/param.h> header file.  */
+/* #undef HAVE_SYS_PARAM_H */
+
+/* Define if you have the <sys/time.h> header file.  */
+/* #undef HAVE_SYS_TIME_H */
+
+/* Define if you have the <unistd.h> header file.  */
+/* #undef HAVE_UNISTD_H */
+
+/* Define if you have the <wchar.h> header file.  */
+#define HAVE_WCHAR_H 1
+
+/* Define if you have the <wctype.h> header file.  */
+#define HAVE_WCTYPE_H 1
+
+/* Define if you have the i library (-li).  */
+/* #undef HAVE_LIBI */
+
+/* Define if you have the intl library (-lintl).  */
+/* #undef HAVE_LIBINTL */
+
+/* define if compiled symbols have a leading underscore */
+/* #undef WITH_SYMBOL_UNDERSCORE */
index e59e19e7bc899625e00cac95d55b501f045c619f..d35df400bfbf411cf392a1658b403716d4f241f8 100644 (file)
@@ -271,6 +271,7 @@ AC_SUBST(GLIB_DEPLIBS)
 
 AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H))
 AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H))
+AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H))
 
 # Find the X11 include and library directories
 AC_PATH_X
index d89aa0ba713c457b9ff995a2052e348f3ee3a3af..aef86d96aa68349eba0fc1b34ed73bf0dea7b1e8 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
-#include "config.h"
-
 #include <stdio.h>
-#if !defined (X_DISPLAY_MISSING)
-#include <X11/Xlib.h>
-#endif
 #include "gdk.h"
 #include "gdkprivate.h"
 
@@ -37,41 +32,15 @@ guint             gdk_debug_flags = 0;
 HWND              gdk_root_window;
 HWND              gdk_leader_window;
 GdkWindowPrivate  gdk_root_parent = { { NULL, }, NULL, };
-#if !defined(X_DISPLAY_MISSING)
-gchar            *gdk_display_name = NULL;
-gint              gdk_use_xshm = TRUE;
-Atom              gdk_wm_delete_window;
-Atom              gdk_wm_take_focus;
-Atom              gdk_wm_protocols;
-Atom              gdk_wm_window_protocols[2];
-GdkDndCursorInfo  gdk_dnd_cursorinfo = {None, None, NULL, NULL,
-                                       {0,0}, {0,0}, NULL};
-GdkDndGlobals     gdk_dnd = {None,None,None,
-                            None,None,None,
-                            None,
-                            &gdk_dnd_cursorinfo,
-                            NULL,
-                            0,
-                            FALSE, FALSE, FALSE,
-                            None,
-                            {0,0},
-                            {0,0}, {0,0},
-                            {0,0,0,0}, NULL, None, 0};
-#elif defined (WINDOWS_DISPLAY)
-
 HDC              gdk_DC;
 HINSTANCE        gdk_DLLInstance;
 HINSTANCE        gdk_ProgInstance;
-
 UINT             gdk_selection_notify_msg;
 UINT             gdk_selection_request_msg;
 UINT             gdk_selection_clear_msg;
 GdkAtom                  gdk_clipboard_atom;
 GdkAtom                  gdk_win32_dropfiles_atom;
 GdkAtom                  gdk_ole2_dnd_atom;
-
-#endif /* WINDOWS_DISPLAY */
-
 Atom              gdk_selection_property;
 gchar            *gdk_progclass = NULL;
 gint              gdk_error_code;
index d89aa0ba713c457b9ff995a2052e348f3ee3a3af..aef86d96aa68349eba0fc1b34ed73bf0dea7b1e8 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
-#include "config.h"
-
 #include <stdio.h>
-#if !defined (X_DISPLAY_MISSING)
-#include <X11/Xlib.h>
-#endif
 #include "gdk.h"
 #include "gdkprivate.h"
 
@@ -37,41 +32,15 @@ guint             gdk_debug_flags = 0;
 HWND              gdk_root_window;
 HWND              gdk_leader_window;
 GdkWindowPrivate  gdk_root_parent = { { NULL, }, NULL, };
-#if !defined(X_DISPLAY_MISSING)
-gchar            *gdk_display_name = NULL;
-gint              gdk_use_xshm = TRUE;
-Atom              gdk_wm_delete_window;
-Atom              gdk_wm_take_focus;
-Atom              gdk_wm_protocols;
-Atom              gdk_wm_window_protocols[2];
-GdkDndCursorInfo  gdk_dnd_cursorinfo = {None, None, NULL, NULL,
-                                       {0,0}, {0,0}, NULL};
-GdkDndGlobals     gdk_dnd = {None,None,None,
-                            None,None,None,
-                            None,
-                            &gdk_dnd_cursorinfo,
-                            NULL,
-                            0,
-                            FALSE, FALSE, FALSE,
-                            None,
-                            {0,0},
-                            {0,0}, {0,0},
-                            {0,0,0,0}, NULL, None, 0};
-#elif defined (WINDOWS_DISPLAY)
-
 HDC              gdk_DC;
 HINSTANCE        gdk_DLLInstance;
 HINSTANCE        gdk_ProgInstance;
-
 UINT             gdk_selection_notify_msg;
 UINT             gdk_selection_request_msg;
 UINT             gdk_selection_clear_msg;
 GdkAtom                  gdk_clipboard_atom;
 GdkAtom                  gdk_win32_dropfiles_atom;
 GdkAtom                  gdk_ole2_dnd_atom;
-
-#endif /* WINDOWS_DISPLAY */
-
 Atom              gdk_selection_property;
 gchar            *gdk_progclass = NULL;
 gint              gdk_error_code;
index feb5ce5ce88d550c4e9988a388d4317062ed1c41..4364fc711f89697513b7ba2b2fcb9d2bf1b3e575 100644 (file)
@@ -2679,9 +2679,9 @@ gdk_rgb_select_conv (GdkImage *image)
   gboolean mask_rgb, mask_bgr;
 
   depth = image_info->visual->depth;
-#if !defined (X_DISPLAY_MISSING)
+#if GDK_WINDOWING == GDK_WINDOWING_X11
   bpp = ((GdkImagePrivate *)image)->ximage->bits_per_pixel;
-#elif defined (WINDOWS_DISPLAY)
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
   bpp = ((GdkVisualPrivate *) gdk_visual_get_system())->xvisual->bitspixel;
 #endif
   byte_order = image->byte_order;
index 4eeb65c639b1044583cf2ba016c530eca25a516c..21957eecf27ddfd289ec0c1b909a5eed3cb5dc04 100644 (file)
@@ -33,7 +33,7 @@
 #include <glib.h>
 
 #ifdef NATIVE_WIN32
-#ifdef COMPILING_GDK
+#ifdef GDK_COMPILATION
 #define GDKVAR __declspec(dllexport)
 #else
 #define GDKVAR extern __declspec(dllimport)
 #define GDKVAR extern
 #endif
 
+/* The system specific file gdkconfig.h contains such configuration
+ * settings that are needed not only when compiling GDK (or GTK)
+ * itself, but also occasionally when compiling programs that use GDK
+ * (or GTK). One such setting is what windowing API backend is in use.
+ */
+#include <gdkconfig.h>
+
+/* Windowing API alternatives. Note that these macros indicate just
+ * what windowing system is in use, not what operating system. It is
+ * possible to built GDK for X11 in a Win32 environment, for instance.
+ *
+ * gdkconfig.h defines GDK_WINDOWING as one of the following. In
+ * addition to the original X11 only the Win32 implementation exists
+ * yet.
+ */
+#define GDK_WINDOWING_X11 1    /* X11 */
+#define GDK_WINDOWING_WIN32 2  /* Win32 GDI */
+#define GDK_WINDOWING_BEOS 3   /* BeOS */
+#define GDK_WINDOWING_MACOS 4  /* MacOS */
+#define GDK_WINDOWING_GGI 5    /* Linux GGI */
+
+/* some common magic values */
 #define GDK_NONE            0L
 #define GDK_CURRENT_TIME     0L
 #define GDK_PARENT_RELATIVE  1L
diff --git a/gdk/win32/makefile.msc b/gdk/win32/makefile.msc
new file mode 100644 (file)
index 0000000..593d887
--- /dev/null
@@ -0,0 +1,97 @@
+## Makefile for building the GDK DLL with Microsoft C
+## Use: nmake -f makefile.msc
+
+# Change this to wherever you want to install the DLLs. This directory
+# should be in your PATH.
+BIN = C:\bin
+
+# Location of the Wintab toolkit. Downloadable from http://www.pointing.com.
+WTKIT = ..\..\wtkit125
+
+# Full optimization:
+OPTIMIZE = -Ox
+# Debugging:
+#OPTIMIZE = -Zi
+
+################################################################
+
+# Nothing much configurable below
+
+# cl -? described the options
+CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -nologo
+
+LDFLAGS = /link /machine:ix86 # /debug /debugtype:cv
+INSTALL = copy
+TOUCH = copy makefile.msc+nul
+
+GLIB_VER=1.2
+GTK_VER=1.3
+
+GLIB = ..\..\glib-$(GLIB_VER)
+CFLAGS = -I. -I.. -I$(WTKIT)\include -I$(GLIB) -DG_ENABLE_DEBUG -DHAVE_CONFIG_H -DGDK_VERSION=\"$(GTK_VER)\" # -DMULTIPLE_WINDOW_CLASSES
+
+all: \
+       ..\config.h     \
+       gdk-$(GTK_VER).dll
+       $(TOUCH) all
+
+install : all
+       $(INSTALL) gdk-$(GTK_VER).dll $(BIN)
+       $(TOUCH) install
+
+gdk_OBJECTS = \
+       gdk.obj         \
+       gdkcc.obj       \
+       gdkcolor.obj    \
+       gdkcursor.obj   \
+       gdkdnd.obj      \
+       gdkdraw.obj     \
+       gdkevents.obj   \
+       gdkfont.obj     \
+       gdkgc.obj       \
+       gdkglobals.obj  \
+       gdkim.obj       \
+       gdkimage.obj    \
+       gdkinput.obj    \
+       gdkpixmap.obj   \
+       gdkproperty.obj \
+       gdkrgb.obj      \
+       gdkrectangle.obj\
+       gdkregion.obj   \
+       gdkselection.obj\
+       gdkvisual.obj   \
+       gdkwindow.obj   \
+       gdkxid.obj
+
+..\config.h : ..\config.h.win32
+       copy ..\config.h.win32 ..\config.h
+
+gdk.res : rc\gdk.rc
+       rc -r -fo gdk.res rc\gdk.rc
+
+gdk-$(GTK_VER).dll : $(gdk_OBJECTS) gdk.def gdk.res
+       $(CC) $(CFLAGS) -LD -Fegdk-$(GTK_VER).dll $(gdk_OBJECTS) $(GLIB)\glib-$(GLIB_VER).lib gdi32.lib user32.lib shell32.lib ole32.lib uuid.lib $(WTKIT)\lib\i386\wntab32x.lib $(LDFLAGS) gdk.res /def:gdk.def
+
+.c.obj :
+       $(CC) $(CFLAGS) -GD -c -DGDK_COMPILATION -DG_LOG_DOMAIN=\"Gdk\" $<
+
+testgdk.exe : testgdk.obj gdk-$(GTK_VER).dll
+       $(CC) $(CFLAGS) testgdk.obj gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+testgdk.obj : testgdk.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgdk\" testgdk.c
+
+clean:
+       del *.exe
+       del *.obj
+       del *.dll
+       del *.lib
+       del *.exp
+       del *.err
+       del *.map
+       del *.sym
+       del *.lk1
+       del *.mk1
+       del *.res
+       del *.pdb
+       del *.ilk
index 692ab2fbbfcbb7bba372d96d97029fc30ad70ede..c4b61a9f46b6aecefc69a4c9de2b95f8663bcf81 100644 (file)
@@ -360,7 +360,9 @@ EXTRA_DIST = \
         circles.xbm            \
        gtkrc.ja                \
        gtkrc.ko                \
-       gtkrc.ru
+       gtkrc.ru                \
+       gtk.def                 \
+       makefile.msc
 
 INCLUDES = \
        -DGTK_DISABLE_COMPAT_H                          \
index 4aecb7f3d6b7f21ee85305bbcfd0ff32c2a0e88a..757cddb36e2dbe36043024e5858a58b973adc867 100644 (file)
@@ -36,6 +36,8 @@
 #endif
 #include "fnmatch.h"
 
+/* We need glib.h for G_DIR_SEPARATOR, WIN32 and NATIVE_WIN32 */
+#include <glib.h>
 #include <ctype.h>
 
 
@@ -49,7 +51,6 @@
 
 #if defined (_LIBC) || !defined (__GNU_LIBRARY__)
 
-
 #if !defined(__GNU_LIBRARY__) && !defined(STDC_HEADERS)
 extern int errno;
 #endif
@@ -66,7 +67,11 @@ fnmatch (pattern, string, flags)
   register char c;
 
 /* Note that this evalutes C many times.  */
+#ifndef WIN32
 #define FOLD(c)        ((flags & FNM_CASEFOLD) && isupper (c) ? tolower (c) : (c))
+#else
+#define FOLD(c)        (tolower (c))
+#endif
 
   while ((c = *p++) != '\0')
     {
@@ -77,13 +82,13 @@ fnmatch (pattern, string, flags)
        case '?':
          if (*n == '\0')
            return FNM_NOMATCH;
-         else if ((flags & FNM_FILE_NAME) && *n == '/')
+         else if ((flags & FNM_FILE_NAME) && *n == G_DIR_SEPARATOR)
            return FNM_NOMATCH;
          else if ((flags & FNM_PERIOD) && *n == '.' &&
-                  (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
+                  (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR)))
            return FNM_NOMATCH;
          break;
-
+#ifndef NATIVE_WIN32
        case '\\':
          if (!(flags & FNM_NOESCAPE))
            {
@@ -93,14 +98,14 @@ fnmatch (pattern, string, flags)
          if (FOLD (*n) != c)
            return FNM_NOMATCH;
          break;
-
+#endif
        case '*':
          if ((flags & FNM_PERIOD) && *n == '.' &&
-             (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
+             (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR)))
            return FNM_NOMATCH;
 
          for (c = *p++; c == '?' || c == '*'; c = *p++, ++n)
-           if (((flags & FNM_FILE_NAME) && *n == '/') ||
+           if (((flags & FNM_FILE_NAME) && *n == G_DIR_SEPARATOR) ||
                (c == '?' && *n == '\0'))
              return FNM_NOMATCH;
 
@@ -108,7 +113,11 @@ fnmatch (pattern, string, flags)
            return 0;
 
          {
+#ifndef NATIVE_WIN32
            char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c;
+#else
+           char c1 = c;
+#endif
            c1 = FOLD (c1);
            for (--p; *n != '\0'; ++n)
              if ((c == '[' || FOLD (*n) == c1) &&
@@ -126,7 +135,7 @@ fnmatch (pattern, string, flags)
              return FNM_NOMATCH;
 
            if ((flags & FNM_PERIOD) && *n == '.' &&
-               (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/')))
+               (n == string || ((flags & FNM_FILE_NAME) && n[-1] == G_DIR_SEPARATOR)))
              return FNM_NOMATCH;
 
            not = (*p == '!' || *p == '^');
@@ -137,10 +146,10 @@ fnmatch (pattern, string, flags)
            for (;;)
              {
                register char cstart = c, cend = c;
-
+#ifndef NATIVE_WIN32
                if (!(flags & FNM_NOESCAPE) && c == '\\')
                  cstart = cend = *p++;
-
+#endif
                cstart = cend = FOLD (cstart);
 
                if (c == '\0')
@@ -150,15 +159,17 @@ fnmatch (pattern, string, flags)
                c = *p++;
                c = FOLD (c);
 
-               if ((flags & FNM_FILE_NAME) && c == '/')
+               if ((flags & FNM_FILE_NAME) && c == G_DIR_SEPARATOR)
                  /* [/] can never match.  */
                  return FNM_NOMATCH;
 
                if (c == '-' && *p != ']')
                  {
                    cend = *p++;
+#ifndef NATIVE_WIN32
                    if (!(flags & FNM_NOESCAPE) && cend == '\\')
                      cend = *p++;
+#endif
                    if (cend == '\0')
                      return FNM_NOMATCH;
                    cend = FOLD (cend);
@@ -185,9 +196,11 @@ fnmatch (pattern, string, flags)
                  return FNM_NOMATCH;
 
                c = *p++;
+#ifndef NATIVE_WIN32
                if (!(flags & FNM_NOESCAPE) && c == '\\')
                  /* XXX 1003.2d11 is unclear if this is right.  */
                  ++p;
+#endif
              }
            if (not)
              return FNM_NOMATCH;
@@ -205,7 +218,7 @@ fnmatch (pattern, string, flags)
   if (*n == '\0')
     return 0;
 
-  if ((flags & FNM_LEADING_DIR) && *n == '/')
+  if ((flags & FNM_LEADING_DIR) && *n == G_DIR_SEPARATOR)
     /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz".  */
     return 0;
 
diff --git a/gtk/gtk.def b/gtk/gtk.def
new file mode 100755 (executable)
index 0000000..ed566ed
--- /dev/null
@@ -0,0 +1,1293 @@
+EXPORTS\r
+       GTK_TYPE_ACCEL_FLAGS\r
+       GTK_TYPE_ACCEL_GROUP\r
+       GTK_TYPE_ANCHOR_TYPE\r
+       GTK_TYPE_ARG_FLAGS\r
+       GTK_TYPE_ARROW_TYPE\r
+       GTK_TYPE_ATTACH_OPTIONS\r
+       GTK_TYPE_BUTTON_ACTION\r
+       GTK_TYPE_BUTTON_BOX_STYLE\r
+       GTK_TYPE_CALENDAR_DISPLAY_OPTIONS\r
+       GTK_TYPE_CELL_TYPE\r
+       GTK_TYPE_CLIST_DRAG_POS\r
+       GTK_TYPE_CORNER_TYPE\r
+       GTK_TYPE_CTREE_EXPANDER_STYLE\r
+       GTK_TYPE_CTREE_EXPANSION_TYPE\r
+       GTK_TYPE_CTREE_LINE_STYLE\r
+       GTK_TYPE_CTREE_NODE\r
+       GTK_TYPE_CTREE_POS\r
+       GTK_TYPE_CURVE_TYPE\r
+       GTK_TYPE_DEBUG_FLAG\r
+       GTK_TYPE_DEST_DEFAULTS\r
+       GTK_TYPE_DIRECTION_TYPE\r
+       GTK_TYPE_FONT_FILTER_TYPE\r
+       GTK_TYPE_FONT_METRIC_TYPE\r
+       GTK_TYPE_FONT_TYPE\r
+       GTK_TYPE_FUNDAMENTAL_TYPE\r
+       GTK_TYPE_GDK_AXIS_USE\r
+       GTK_TYPE_GDK_BYTE_ORDER\r
+       GTK_TYPE_GDK_CAP_STYLE\r
+       GTK_TYPE_GDK_COLOR\r
+       GTK_TYPE_GDK_COLORMAP\r
+       GTK_TYPE_GDK_COLOR_CONTEXT_MODE\r
+       GTK_TYPE_GDK_CROSSING_MODE\r
+       GTK_TYPE_GDK_CURSOR_TYPE\r
+       GTK_TYPE_GDK_DRAG_ACTION\r
+       GTK_TYPE_GDK_DRAG_CONTEXT\r
+       GTK_TYPE_GDK_DRAG_PROTOCOL\r
+       GTK_TYPE_GDK_EVENT\r
+       GTK_TYPE_GDK_EVENT_MASK\r
+       GTK_TYPE_GDK_EVENT_TYPE\r
+       GTK_TYPE_GDK_EXTENSION_MODE\r
+       GTK_TYPE_GDK_FILL\r
+       GTK_TYPE_GDK_FILL_RULE\r
+       GTK_TYPE_GDK_FILTER_RETURN\r
+       GTK_TYPE_GDK_FONT\r
+       GTK_TYPE_GDK_FONT_TYPE\r
+       GTK_TYPE_GDK_FUNCTION\r
+       GTK_TYPE_GDK_GC_VALUES_MASK\r
+       GTK_TYPE_GDK_IC_ATTRIBUTES_TYPE\r
+       GTK_TYPE_GDK_IMAGE_TYPE\r
+       GTK_TYPE_GDK_IM_STYLE\r
+       GTK_TYPE_GDK_INPUT_CONDITION\r
+       GTK_TYPE_GDK_INPUT_MODE\r
+       GTK_TYPE_GDK_INPUT_SOURCE\r
+       GTK_TYPE_GDK_JOIN_STYLE\r
+       GTK_TYPE_GDK_LINE_STYLE\r
+       GTK_TYPE_GDK_MODIFIER_TYPE\r
+       GTK_TYPE_GDK_NOTIFY_TYPE\r
+       GTK_TYPE_GDK_OVERLAP_TYPE\r
+       GTK_TYPE_GDK_PROPERTY_STATE\r
+       GTK_TYPE_GDK_PROP_MODE\r
+       GTK_TYPE_GDK_RGB_DITHER\r
+       GTK_TYPE_GDK_SELECTION\r
+       GTK_TYPE_GDK_SELECTION_TYPE\r
+       GTK_TYPE_GDK_STATUS\r
+       GTK_TYPE_GDK_SUBWINDOW_MODE\r
+       GTK_TYPE_GDK_TARGET\r
+       GTK_TYPE_GDK_VISIBILITY_STATE\r
+       GTK_TYPE_GDK_VISUAL\r
+       GTK_TYPE_GDK_VISUAL_TYPE\r
+       GTK_TYPE_GDK_WINDOW\r
+       GTK_TYPE_GDK_WINDOW_ATTRIBUTES_TYPE\r
+       GTK_TYPE_GDK_WINDOW_CLASS\r
+       GTK_TYPE_GDK_WINDOW_HINTS\r
+       GTK_TYPE_GDK_WINDOW_TYPE\r
+       GTK_TYPE_GDK_WM_DECORATION\r
+       GTK_TYPE_GDK_WM_FUNCTION\r
+       GTK_TYPE_JUSTIFICATION\r
+       GTK_TYPE_MATCH_TYPE\r
+       GTK_TYPE_MENU_DIRECTION_TYPE\r
+       GTK_TYPE_MENU_FACTORY_TYPE\r
+       GTK_TYPE_METRIC_TYPE\r
+       GTK_TYPE_OBJECT_FLAGS\r
+       GTK_TYPE_ORIENTATION\r
+       GTK_TYPE_PACKER_OPTIONS\r
+       GTK_TYPE_PACK_TYPE\r
+       GTK_TYPE_PATH_PRIORITY_TYPE\r
+       GTK_TYPE_PATH_TYPE\r
+       GTK_TYPE_POLICY_TYPE\r
+       GTK_TYPE_POSITION_TYPE\r
+       GTK_TYPE_PREVIEW_TYPE\r
+       GTK_TYPE_PRIVATE_FLAGS\r
+       GTK_TYPE_PROGRESS_BAR_ORIENTATION\r
+       GTK_TYPE_PROGRESS_BAR_STYLE\r
+       GTK_TYPE_RC_FLAGS\r
+       GTK_TYPE_RC_TOKEN_TYPE\r
+       GTK_TYPE_RELIEF_STYLE\r
+       GTK_TYPE_RESIZE_MODE\r
+       GTK_TYPE_SCROLL_TYPE\r
+       GTK_TYPE_SELECTION_DATA\r
+       GTK_TYPE_SELECTION_MODE\r
+       GTK_TYPE_SHADOW_TYPE\r
+       GTK_TYPE_SIDE_TYPE\r
+       GTK_TYPE_SIGNAL_RUN_TYPE\r
+       GTK_TYPE_SORT_TYPE\r
+       GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY\r
+       GTK_TYPE_SPIN_TYPE\r
+       GTK_TYPE_STATE_TYPE\r
+       GTK_TYPE_STYLE\r
+       GTK_TYPE_SUBMENU_DIRECTION\r
+       GTK_TYPE_SUBMENU_PLACEMENT\r
+       GTK_TYPE_TARGET_FLAGS\r
+       GTK_TYPE_TOOLBAR_CHILD_TYPE\r
+       GTK_TYPE_TOOLBAR_SPACE_STYLE\r
+       GTK_TYPE_TOOLBAR_STYLE\r
+       GTK_TYPE_TREE_VIEW_MODE\r
+       GTK_TYPE_TROUGH_TYPE\r
+       GTK_TYPE_UPDATE_TYPE\r
+       GTK_TYPE_VISIBILITY\r
+       GTK_TYPE_WIDGET_FLAGS\r
+       GTK_TYPE_WINDOW_POSITION\r
+       GTK_TYPE_WINDOW_TYPE\r
+       gtk_accel_group_activate\r
+       gtk_accel_group_add\r
+       gtk_accel_group_attach\r
+       gtk_accel_group_create_add\r
+       gtk_accel_group_create_remove\r
+       gtk_accel_group_detach\r
+       gtk_accel_group_entries_from_object\r
+       gtk_accel_group_get_default\r
+       gtk_accel_group_get_entry\r
+       gtk_accel_group_handle_add\r
+       gtk_accel_group_handle_remove\r
+       gtk_accel_group_lock\r
+       gtk_accel_group_lock_entry\r
+       gtk_accel_group_new\r
+       gtk_accel_group_ref\r
+       gtk_accel_group_remove\r
+       gtk_accel_group_unlock\r
+       gtk_accel_group_unlock_entry\r
+       gtk_accel_group_unref\r
+       gtk_accel_groups_activate\r
+       gtk_accel_groups_from_object\r
+       gtk_accel_label_get_accel_width\r
+       gtk_accel_label_get_type\r
+       gtk_accel_label_new\r
+       gtk_accel_label_refetch\r
+       gtk_accel_label_set_accel_widget\r
+       gtk_accelerator_get_default_mod_mask\r
+       gtk_accelerator_name\r
+       gtk_accelerator_parse\r
+       gtk_accelerator_set_default_mod_mask\r
+       gtk_accelerator_valid\r
+       gtk_adjustment_changed\r
+       gtk_adjustment_clamp_page\r
+       gtk_adjustment_get_type\r
+       gtk_adjustment_new\r
+       gtk_adjustment_set_value\r
+       gtk_adjustment_value_changed\r
+       gtk_alignment_get_type\r
+       gtk_alignment_new\r
+       gtk_alignment_set\r
+       gtk_arrow_get_type\r
+       gtk_arrow_new\r
+       gtk_arrow_set\r
+       gtk_aspect_frame_get_type\r
+       gtk_aspect_frame_new\r
+       gtk_aspect_frame_set\r
+       gtk_bin_get_type\r
+       gtk_binary_age\r
+       gtk_binding_entry_add_signal\r
+       gtk_binding_entry_clear\r
+       gtk_binding_set_activate\r
+       gtk_binding_set_add_path\r
+       gtk_binding_set_by_class\r
+       gtk_binding_set_find\r
+       gtk_binding_set_new\r
+       gtk_bindings_activate\r
+       gtk_box_get_type\r
+       gtk_box_pack_end\r
+       gtk_box_pack_end_defaults\r
+       gtk_box_pack_start\r
+       gtk_box_pack_start_defaults\r
+       gtk_box_query_child_packing\r
+       gtk_box_reorder_child\r
+       gtk_box_set_child_packing\r
+       gtk_box_set_homogeneous\r
+       gtk_box_set_spacing\r
+       gtk_button_box_child_requisition\r
+       gtk_button_box_get_child_ipadding\r
+       gtk_button_box_get_child_ipadding_default\r
+       gtk_button_box_get_child_size\r
+       gtk_button_box_get_child_size_default\r
+       gtk_button_box_get_layout\r
+       gtk_button_box_get_spacing\r
+       gtk_button_box_get_type\r
+       gtk_button_box_set_child_ipadding\r
+       gtk_button_box_set_child_ipadding_default\r
+       gtk_button_box_set_child_size\r
+       gtk_button_box_set_child_size_default\r
+       gtk_button_box_set_layout\r
+       gtk_button_box_set_spacing\r
+       gtk_button_clicked\r
+       gtk_button_enter\r
+       gtk_button_get_relief\r
+       gtk_button_get_type\r
+       gtk_button_leave\r
+       gtk_button_new\r
+       gtk_button_new_with_label\r
+       gtk_button_pressed\r
+       gtk_button_released\r
+       gtk_button_set_relief\r
+       gtk_calendar_clear_marks\r
+       gtk_calendar_display_options\r
+       gtk_calendar_freeze\r
+       gtk_calendar_get_date\r
+       gtk_calendar_get_type\r
+       gtk_calendar_new\r
+       gtk_calendar_mark_day\r
+       gtk_calendar_select_day\r
+       gtk_calendar_select_month\r
+       gtk_calendar_thaw\r
+       gtk_calendar_unmark_day\r
+       gtk_check_button_get_type\r
+       gtk_check_button_new\r
+       gtk_check_button_new_with_label\r
+       gtk_check_menu_item_get_type\r
+       gtk_check_menu_item_new\r
+       gtk_check_menu_item_new_with_label\r
+       gtk_check_menu_item_set_active\r
+       gtk_check_menu_item_set_show_toggle\r
+       gtk_check_menu_item_toggled\r
+       gtk_check_version\r
+       gtk_clist_append\r
+       gtk_clist_clear\r
+       gtk_clist_column_title_active\r
+       gtk_clist_column_title_passive\r
+       gtk_clist_column_titles_active\r
+       gtk_clist_column_titles_hide\r
+       gtk_clist_column_titles_passive\r
+       gtk_clist_column_titles_show\r
+       gtk_clist_columns_autosize\r
+       gtk_clist_construct\r
+       gtk_clist_find_row_from_data\r
+       gtk_clist_freeze\r
+       gtk_clist_get_cell_style\r
+       gtk_clist_get_cell_type\r
+       gtk_clist_get_column_title\r
+       gtk_clist_get_column_widget\r
+       gtk_clist_get_pixmap\r
+       gtk_clist_get_pixtext\r
+       gtk_clist_get_row_data\r
+       gtk_clist_get_row_style\r
+       gtk_clist_get_selectable\r
+       gtk_clist_get_selection_info\r
+       gtk_clist_get_text\r
+       gtk_clist_get_type\r
+       gtk_clist_insert\r
+       gtk_clist_moveto\r
+       gtk_clist_new\r
+       gtk_clist_new_with_titles\r
+       gtk_clist_optimal_column_width\r
+       gtk_clist_prepend\r
+       gtk_clist_remove\r
+       gtk_clist_row_is_visible\r
+       gtk_clist_select_all\r
+       gtk_clist_select_row\r
+       gtk_clist_set_auto_sort\r
+       gtk_clist_set_background\r
+       gtk_clist_set_button_actions\r
+       gtk_clist_set_cell_style\r
+       gtk_clist_set_column_auto_resize\r
+       gtk_clist_set_column_justification\r
+       gtk_clist_set_column_max_width\r
+       gtk_clist_set_column_min_width\r
+       gtk_clist_set_column_resizeable\r
+       gtk_clist_set_column_title\r
+       gtk_clist_set_column_visibility\r
+       gtk_clist_set_column_widget\r
+       gtk_clist_set_column_width\r
+       gtk_clist_set_compare_func\r
+       gtk_clist_set_foreground\r
+       gtk_clist_set_pixmap\r
+       gtk_clist_set_pixtext\r
+       gtk_clist_set_reorderable\r
+       gtk_clist_set_row_data\r
+       gtk_clist_set_row_data_full\r
+       gtk_clist_set_row_height\r
+       gtk_clist_set_row_style\r
+       gtk_clist_set_selectable\r
+       gtk_clist_set_selection_mode\r
+       gtk_clist_set_shadow_type\r
+       gtk_clist_set_shift\r
+       gtk_clist_set_sort_column\r
+       gtk_clist_set_sort_type\r
+       gtk_clist_set_text\r
+       gtk_clist_set_use_drag_icons\r
+       gtk_clist_sort\r
+       gtk_clist_swap_rows\r
+       gtk_clist_thaw\r
+       gtk_clist_undo_selection\r
+       gtk_clist_unselect_all\r
+       gtk_clist_unselect_row\r
+       gtk_color_selection_dialog_get_type\r
+       gtk_color_selection_dialog_new\r
+       gtk_color_selection_get_color\r
+       gtk_color_selection_get_type\r
+       gtk_color_selection_new\r
+       gtk_color_selection_set_color\r
+       gtk_color_selection_set_opacity\r
+       gtk_color_selection_set_update_policy\r
+       gtk_combo_disable_activate\r
+       gtk_combo_get_type\r
+       gtk_combo_new\r
+       gtk_combo_set_case_sensitive\r
+       gtk_combo_set_item_string\r
+       gtk_combo_set_popdown_strings\r
+       gtk_combo_set_use_arrows\r
+       gtk_combo_set_use_arrows_always\r
+       gtk_combo_set_value_in_list\r
+       gtk_container_add\r
+       gtk_container_add_child_arg_type\r
+       gtk_container_add_with_args\r
+       gtk_container_addv\r
+       gtk_container_check_resize\r
+       gtk_container_child_getv\r
+       gtk_container_child_set\r
+       gtk_container_child_setv\r
+       gtk_container_child_type\r
+       gtk_container_children\r
+       gtk_container_focus\r
+       gtk_container_foreach\r
+       gtk_container_foreach_full\r
+       gtk_container_get_type\r
+       gtk_container_query_child_args\r
+       gtk_container_queue_resize\r
+       gtk_container_register_toplevel\r
+       gtk_container_remove\r
+       gtk_container_resize_children\r
+       gtk_container_set_border_width\r
+       gtk_container_set_focus_child\r
+       gtk_container_set_focus_hadjustment\r
+       gtk_container_set_focus_vadjustment\r
+       gtk_container_set_resize_mode\r
+       gtk_container_unregister_toplevel\r
+       gtk_ctree_collapse\r
+       gtk_ctree_collapse_recursive\r
+       gtk_ctree_collapse_to_depth\r
+       gtk_ctree_construct\r
+       gtk_ctree_expand\r
+       gtk_ctree_expand_recursive\r
+       gtk_ctree_expand_to_depth\r
+       gtk_ctree_export_to_gnode\r
+       gtk_ctree_find\r
+       gtk_ctree_find_by_row_data\r
+       gtk_ctree_find_by_row_data_custom\r
+       gtk_ctree_find_node_ptr\r
+       gtk_ctree_get_node_info\r
+       gtk_ctree_get_type\r
+       gtk_ctree_insert_gnode\r
+       gtk_ctree_insert_node\r
+       gtk_ctree_is_ancestor\r
+       gtk_ctree_is_hot_spot\r
+       gtk_ctree_is_viewable\r
+       gtk_ctree_last\r
+       gtk_ctree_move\r
+       gtk_ctree_new\r
+       gtk_ctree_new_with_titles\r
+       gtk_ctree_node_get_cell_style\r
+       gtk_ctree_node_get_cell_type\r
+       gtk_ctree_node_get_pixmap\r
+       gtk_ctree_node_get_pixtext\r
+       gtk_ctree_node_get_row_data\r
+       gtk_ctree_node_get_row_style\r
+       gtk_ctree_node_get_selectable\r
+       gtk_ctree_node_get_text\r
+       gtk_ctree_node_is_visible\r
+       gtk_ctree_node_moveto\r
+       gtk_ctree_node_nth\r
+       gtk_ctree_node_set_background\r
+       gtk_ctree_node_set_cell_style\r
+       gtk_ctree_node_set_foreground\r
+       gtk_ctree_node_set_pixmap\r
+       gtk_ctree_node_set_pixtext\r
+       gtk_ctree_node_set_row_data\r
+       gtk_ctree_node_set_row_data_full\r
+       gtk_ctree_node_set_row_style\r
+       gtk_ctree_node_set_selectable\r
+       gtk_ctree_node_set_shift\r
+       gtk_ctree_node_set_text\r
+       gtk_ctree_post_recursive\r
+       gtk_ctree_post_recursive_to_depth\r
+       gtk_ctree_pre_recursive\r
+       gtk_ctree_pre_recursive_to_depth\r
+       gtk_ctree_real_select_recursive\r
+       gtk_ctree_remove_node\r
+       gtk_ctree_select\r
+       gtk_ctree_select_recursive\r
+       gtk_ctree_set_drag_compare_func\r
+       gtk_ctree_set_expander_style\r
+       gtk_ctree_set_indent\r
+       gtk_ctree_set_line_style\r
+       gtk_ctree_set_node_info\r
+       gtk_ctree_set_spacing\r
+       gtk_ctree_sort_node\r
+       gtk_ctree_sort_recursive\r
+       gtk_ctree_toggle_expansion\r
+       gtk_ctree_toggle_expansion_recursive\r
+       gtk_ctree_unselect\r
+       gtk_ctree_unselect_recursive\r
+       gtk_curve_get_type\r
+       gtk_curve_get_vector\r
+       gtk_curve_new\r
+       gtk_curve_reset\r
+       gtk_curve_set_curve_type\r
+       gtk_curve_set_gamma\r
+       gtk_curve_set_range\r
+       gtk_curve_set_vector\r
+       gtk_data_get_type\r
+       gtk_dialog_get_type\r
+       gtk_dialog_new\r
+       gtk_drag_begin\r
+       gtk_drag_dest_handle_event\r
+       gtk_drag_dest_set\r
+       gtk_drag_dest_set_proxy\r
+       gtk_drag_dest_unset\r
+       gtk_drag_finish\r
+       gtk_drag_get_data\r
+       gtk_drag_get_source_widget\r
+       gtk_drag_highlight\r
+       gtk_drag_set_default_icon\r
+       gtk_drag_set_icon_default\r
+       gtk_drag_set_icon_widget\r
+       gtk_drag_set_icon_pixmap\r
+       gtk_drag_source_handle_event\r
+       gtk_drag_source_set\r
+       gtk_drag_source_set_icon\r
+       gtk_drag_unhighlight\r
+       gtk_draw_arrow\r
+       gtk_draw_box\r
+       gtk_draw_diamond\r
+       gtk_draw_hline\r
+       gtk_draw_oval\r
+       gtk_draw_polygon\r
+       gtk_draw_shadow\r
+       gtk_draw_string\r
+       gtk_draw_vline\r
+       gtk_drawing_area_get_type\r
+       gtk_drawing_area_new\r
+       gtk_drawing_area_size\r
+       gtk_editable_changed\r
+       gtk_editable_claim_selection\r
+       gtk_editable_copy_clipboard\r
+       gtk_editable_cut_clipboard\r
+       gtk_editable_delete_selection\r
+       gtk_editable_delete_text\r
+       gtk_editable_get_chars\r
+       gtk_editable_get_position\r
+       gtk_editable_get_type\r
+       gtk_editable_insert_text\r
+       gtk_editable_paste_clipboard\r
+       gtk_editable_select_region\r
+       gtk_editable_set_editable\r
+       gtk_editable_set_position\r
+       gtk_entry_append_text\r
+       gtk_entry_get_text\r
+       gtk_entry_get_type\r
+       gtk_entry_new\r
+       gtk_entry_new_with_max_length\r
+       gtk_entry_prepend_text\r
+       gtk_entry_select_region\r
+       gtk_entry_set_editable\r
+       gtk_entry_set_max_length\r
+       gtk_entry_set_position\r
+       gtk_entry_set_text\r
+       gtk_entry_set_visibility\r
+       gtk_event_box_get_type\r
+       gtk_event_box_new\r
+       gtk_events_pending\r
+       gtk_exit\r
+       gtk_false\r
+       gtk_file_selection_get_filename\r
+       gtk_file_selection_get_type\r
+       gtk_file_selection_hide_fileop_buttons\r
+       gtk_file_selection_new\r
+       gtk_file_selection_set_filename\r
+       gtk_file_selection_show_fileop_buttons\r
+       gtk_fixed_get_type\r
+       gtk_fixed_move\r
+       gtk_fixed_new\r
+       gtk_fixed_put\r
+       gtk_font_selection_dialog_get_font\r
+       gtk_font_selection_dialog_get_font_name\r
+       gtk_font_selection_dialog_get_preview_text\r
+       gtk_font_selection_dialog_get_type\r
+       gtk_font_selection_dialog_new\r
+       gtk_font_selection_dialog_set_filter\r
+       gtk_font_selection_dialog_set_font_name\r
+       gtk_font_selection_dialog_set_preview_text\r
+       gtk_font_selection_get_font\r
+       gtk_font_selection_get_font_name\r
+       gtk_font_selection_get_preview_text\r
+       gtk_font_selection_get_type\r
+       gtk_font_selection_new\r
+       gtk_font_selection_set_filter\r
+       gtk_font_selection_set_font_name\r
+       gtk_font_selection_set_preview_text\r
+       gtk_frame_get_type\r
+       gtk_frame_new\r
+       gtk_frame_set_label\r
+       gtk_frame_set_label_align\r
+       gtk_frame_set_shadow_type\r
+       gtk_gamma_curve_get_type\r
+       gtk_gamma_curve_new\r
+       gtk_gc_get\r
+       gtk_gc_release\r
+       gtk_get_current_event\r
+       gtk_get_event_widget\r
+       gtk_grab_add\r
+       gtk_grab_get_current\r
+       gtk_grab_remove\r
+       gtk_handle_box_get_type\r
+       gtk_handle_box_new\r
+       gtk_handle_box_set_handle_position\r
+       gtk_handle_box_set_shadow_type\r
+       gtk_handle_box_set_snap_edge\r
+       gtk_hbox_get_type\r
+       gtk_hbox_new\r
+       gtk_hbutton_box_get_layout_default\r
+       gtk_hbutton_box_get_spacing_default\r
+       gtk_hbutton_box_get_type\r
+       gtk_hbutton_box_new\r
+       gtk_hbutton_box_set_layout_default\r
+       gtk_hbutton_box_set_spacing_default\r
+       gtk_hpaned_get_type\r
+       gtk_hpaned_new\r
+       gtk_hruler_get_type\r
+       gtk_hruler_new\r
+       gtk_hscale_get_type\r
+       gtk_hscale_new\r
+       gtk_hscrollbar_get_type\r
+       gtk_hscrollbar_new\r
+       gtk_hseparator_get_type\r
+       gtk_hseparator_new\r
+       gtk_idle_add\r
+       gtk_idle_add_full\r
+       gtk_idle_add_priority\r
+       gtk_idle_remove\r
+       gtk_idle_remove_by_data\r
+       gtk_image_get\r
+       gtk_image_get_type\r
+       gtk_image_new\r
+       gtk_image_set\r
+       gtk_init\r
+       gtk_init_add\r
+       gtk_init_check\r
+       gtk_input_add_full\r
+       gtk_input_dialog_get_type\r
+       gtk_input_dialog_new\r
+       gtk_input_remove\r
+       gtk_interface_age\r
+       gtk_invisible_get_type\r
+       gtk_invisible_new\r
+       gtk_item_deselect\r
+       gtk_item_factories_path_delete\r
+       gtk_item_factory_construct\r
+       gtk_item_factory_create_item\r
+       gtk_item_factory_create_items\r
+       gtk_item_factory_create_items_ac\r
+       gtk_item_factory_create_menu_entries\r
+       gtk_item_factory_delete_entries\r
+       gtk_item_factory_delete_entry\r
+       gtk_item_factory_delete_item\r
+       gtk_item_factory_dump_items\r
+       gtk_item_factory_dump_rc\r
+       gtk_item_factory_from_path\r
+       gtk_item_factory_from_widget\r
+       gtk_item_factory_get_widget\r
+       gtk_item_factory_get_widget_by_action\r
+       gtk_item_factory_new\r
+       gtk_item_factory_parse_rc\r
+       gtk_item_factory_parse_rc_scanner\r
+       gtk_item_factory_parse_rc_string\r
+       gtk_item_factory_path_from_widget\r
+       gtk_item_factory_popup\r
+       gtk_item_factory_popup_data\r
+       gtk_item_factory_popup_data_from_widget\r
+       gtk_item_factory_popup_with_data\r
+       gtk_item_factory_print_func\r
+       gtk_item_get_type\r
+       gtk_item_select\r
+       gtk_item_toggle\r
+       gtk_key_snooper_install\r
+       gtk_key_snooper_remove\r
+       gtk_label_get\r
+       gtk_label_get_type\r
+       gtk_label_new\r
+       gtk_label_parse_uline\r
+       gtk_label_set_justify\r
+       gtk_label_set_line_wrap\r
+       gtk_label_set_pattern\r
+       gtk_label_set_text\r
+       gtk_layout_freeze\r
+       gtk_layout_get_hadjustment\r
+       gtk_layout_get_type\r
+       gtk_layout_get_vadjustment\r
+       gtk_layout_move\r
+       gtk_layout_new\r
+       gtk_layout_put\r
+       gtk_layout_set_hadjustment\r
+       gtk_layout_set_size\r
+       gtk_layout_set_vadjustment\r
+       gtk_layout_thaw\r
+       gtk_list_append_items\r
+       gtk_list_child_position\r
+       gtk_list_clear_items\r
+       gtk_list_end_drag_selection\r
+       gtk_list_end_selection\r
+       gtk_list_extend_selection\r
+       gtk_list_get_type\r
+       gtk_list_insert_items\r
+       gtk_list_item_deselect\r
+       gtk_list_item_get_type\r
+       gtk_list_item_new\r
+       gtk_list_item_new_with_label\r
+       gtk_list_item_select\r
+       gtk_list_new\r
+       gtk_list_prepend_items\r
+       gtk_list_remove_items\r
+       gtk_list_remove_items_no_unref\r
+       gtk_list_scroll_horizontal\r
+       gtk_list_scroll_vertical\r
+       gtk_list_select_all\r
+       gtk_list_select_child\r
+       gtk_list_select_item\r
+       gtk_list_set_selection_mode\r
+       gtk_list_toggle_focus_row\r
+       gtk_list_toggle_row\r
+       gtk_list_undo_selection\r
+       gtk_list_unselect_all\r
+       gtk_list_unselect_child\r
+       gtk_list_unselect_item\r
+       gtk_main\r
+       gtk_main_iteration\r
+       gtk_main_iteration_do\r
+       gtk_main_level\r
+       gtk_main_quit\r
+       gtk_major_version\r
+       gtk_marshal_BOOL__NONE\r
+       gtk_marshal_BOOL__POINTER\r
+       gtk_marshal_BOOL__POINTER_INT_INT\r
+       gtk_marshal_BOOL__POINTER_INT_INT_INT\r
+       gtk_marshal_BOOL__POINTER_POINTER_INT_INT\r
+       gtk_marshal_BOOL__POINTER_POINTER_POINTER_POINTER\r
+       gtk_marshal_INT__INT\r
+       gtk_marshal_INT__POINTER\r
+       gtk_marshal_INT__POINTER_CHAR_CHAR\r
+       gtk_marshal_NONE__BOOL\r
+       gtk_marshal_NONE__C_CALLBACK\r
+       gtk_marshal_NONE__C_CALLBACK_C_CALLBACK\r
+       gtk_marshal_NONE__INT\r
+       gtk_marshal_NONE__INT_FLOAT\r
+       gtk_marshal_NONE__INT_FLOAT_BOOL\r
+       gtk_marshal_NONE__INT_INT\r
+       gtk_marshal_NONE__INT_INT_POINTER\r
+       gtk_marshal_NONE__INT_POINTER\r
+       gtk_marshal_NONE__INT_POINTER_INT_INT_INT\r
+       gtk_marshal_NONE__INT_POINTER_INT_INT_INT_POINTER\r
+       gtk_marshal_NONE__NONE\r
+       gtk_marshal_NONE__POINTER\r
+       gtk_marshal_NONE__POINTER_INT\r
+       gtk_marshal_NONE__POINTER_INT_INT\r
+       gtk_marshal_NONE__POINTER_INT_POINTER\r
+       gtk_marshal_NONE__POINTER_INT_INT_POINTER_INT_INT\r
+       gtk_marshal_NONE__POINTER_POINTER\r
+       gtk_marshal_NONE__POINTER_POINTER_INT_INT\r
+       gtk_marshal_NONE__POINTER_POINTER_POINTER\r
+       gtk_menu_append\r
+       gtk_menu_attach_to_widget\r
+       gtk_menu_bar_append\r
+       gtk_menu_bar_get_type\r
+       gtk_menu_bar_insert\r
+       gtk_menu_bar_new\r
+       gtk_menu_bar_prepend\r
+       gtk_menu_bar_set_shadow_type\r
+       gtk_menu_detach\r
+       gtk_menu_factory_add_entries\r
+       gtk_menu_factory_add_subfactory\r
+       gtk_menu_factory_destroy\r
+       gtk_menu_factory_find\r
+       gtk_menu_factory_new\r
+       gtk_menu_factory_remove_entries\r
+       gtk_menu_factory_remove_paths\r
+       gtk_menu_factory_remove_subfactory\r
+       gtk_menu_get_active\r
+       gtk_menu_get_attach_widget\r
+       gtk_menu_get_type\r
+       gtk_menu_insert\r
+       gtk_menu_item_activate\r
+       gtk_menu_item_configure\r
+       gtk_menu_item_deselect\r
+       gtk_menu_item_get_type\r
+       gtk_menu_item_new\r
+       gtk_menu_item_new_with_label\r
+       gtk_menu_item_remove_submenu\r
+       gtk_menu_item_right_justify\r
+       gtk_menu_item_select\r
+       gtk_menu_item_set_placement\r
+       gtk_menu_item_set_submenu\r
+       gtk_menu_new\r
+       gtk_menu_popdown\r
+       gtk_menu_popup\r
+       gtk_menu_prepend\r
+       gtk_menu_reorder_child\r
+       gtk_menu_reposition\r
+       gtk_menu_set_accel_group\r
+       gtk_menu_set_active\r
+       gtk_menu_set_tearoff_state\r
+       gtk_menu_shell_activate_item\r
+       gtk_menu_shell_append\r
+       gtk_menu_shell_deactivate\r
+       gtk_menu_shell_get_type\r
+       gtk_menu_shell_insert\r
+       gtk_menu_shell_prepend\r
+       gtk_menu_shell_select_item\r
+       gtk_micro_version\r
+       gtk_minor_version\r
+       gtk_misc_get_type\r
+       gtk_misc_set_alignment\r
+       gtk_misc_set_padding\r
+       gtk_notebook_append_page\r
+       gtk_notebook_append_page_menu\r
+       gtk_notebook_get_current_page\r
+       gtk_notebook_get_menu_label\r
+       gtk_notebook_get_nth_page\r
+       gtk_notebook_get_tab_label\r
+       gtk_notebook_get_type\r
+       gtk_notebook_insert_page\r
+       gtk_notebook_insert_page_menu\r
+       gtk_notebook_new\r
+       gtk_notebook_next_page\r
+       gtk_notebook_page_num\r
+       gtk_notebook_popup_disable\r
+       gtk_notebook_popup_enable\r
+       gtk_notebook_prepend_page\r
+       gtk_notebook_prepend_page_menu\r
+       gtk_notebook_prev_page\r
+       gtk_notebook_query_tab_label_packing\r
+       gtk_notebook_remove_page\r
+       gtk_notebook_reorder_child\r
+       gtk_notebook_set_homogeneous_tabs\r
+       gtk_notebook_set_menu_label\r
+       gtk_notebook_set_menu_label_text\r
+       gtk_notebook_set_page\r
+       gtk_notebook_set_scrollable\r
+       gtk_notebook_set_show_border\r
+       gtk_notebook_set_show_tabs\r
+       gtk_notebook_set_tab_border\r
+       gtk_notebook_set_tab_hborder\r
+       gtk_notebook_set_tab_label\r
+       gtk_notebook_set_tab_label_packing\r
+       gtk_notebook_set_tab_label_text\r
+       gtk_notebook_set_tab_pos\r
+       gtk_notebook_set_tab_vborder\r
+       gtk_object_add_arg_type\r
+       gtk_object_arg_get\r
+       gtk_object_arg_get_info\r
+       gtk_object_arg_set\r
+       gtk_object_args_collect\r
+       gtk_object_class_add_signals\r
+       gtk_object_class_user_signal_new\r
+       gtk_object_class_user_signal_newv\r
+       gtk_object_constructed\r
+       gtk_object_default_construct\r
+       gtk_object_destroy\r
+       gtk_object_get_data\r
+       gtk_object_get_data_by_id\r
+       gtk_object_get_type\r
+       gtk_object_get_user_data\r
+       gtk_object_getv\r
+       gtk_object_new\r
+       gtk_object_newv\r
+       gtk_object_query_args\r
+       gtk_object_ref\r
+       gtk_object_remove_data\r
+       gtk_object_remove_data_by_id\r
+       gtk_object_remove_no_notify_by_id\r
+       gtk_object_set\r
+       gtk_object_set_data\r
+       gtk_object_set_data_by_id\r
+       gtk_object_set_data_by_id_full\r
+       gtk_object_set_data_full\r
+       gtk_object_set_user_data\r
+       gtk_object_setv\r
+       gtk_object_sink\r
+       gtk_object_unref\r
+       gtk_object_weakref\r
+       gtk_object_weakunref\r
+       gtk_option_menu_get_menu\r
+       gtk_option_menu_get_type\r
+       gtk_option_menu_new\r
+       gtk_option_menu_remove_menu\r
+       gtk_option_menu_set_history\r
+       gtk_option_menu_set_menu\r
+       gtk_packer_add\r
+       gtk_packer_add_defaults\r
+       gtk_packer_get_type\r
+       gtk_packer_new\r
+       gtk_packer_reorder_child\r
+       gtk_packer_set_child_packing\r
+       gtk_packer_set_default_border_width\r
+       gtk_packer_set_default_ipad\r
+       gtk_packer_set_default_pad\r
+       gtk_packer_set_spacing\r
+       gtk_paint_arrow\r
+       gtk_paint_box\r
+       gtk_paint_box_gap\r
+       gtk_paint_check\r
+       gtk_paint_cross\r
+       gtk_paint_diamond\r
+       gtk_paint_extension\r
+       gtk_paint_flat_box\r
+       gtk_paint_focus\r
+       gtk_paint_handle\r
+       gtk_paint_hline\r
+       gtk_paint_oval\r
+       gtk_paint_option\r
+       gtk_paint_polygon\r
+       gtk_paint_ramp\r
+       gtk_paint_slider\r
+       gtk_paint_shadow\r
+       gtk_paint_shadow_gap\r
+       gtk_paint_string\r
+       gtk_paint_tab\r
+       gtk_paint_vline\r
+       gtk_paned_add1\r
+       gtk_paned_add2\r
+       gtk_paned_get_type\r
+       gtk_paned_pack1\r
+       gtk_paned_pack2\r
+       gtk_paned_set_gutter_size\r
+       gtk_paned_set_handle_size\r
+       gtk_paned_set_position\r
+       gtk_pattern_match\r
+       gtk_pattern_match_simple\r
+       gtk_pattern_match_string\r
+       gtk_pattern_spec_free_segs\r
+       gtk_pattern_spec_init\r
+       gtk_pixmap_get\r
+       gtk_pixmap_get_type\r
+       gtk_pixmap_new\r
+       gtk_pixmap_set\r
+       gtk_pixmap_set_build_insensitive\r
+       gtk_plug_construct\r
+       gtk_plug_new\r
+       gtk_preview_draw_row\r
+       gtk_preview_get_cmap\r
+       gtk_preview_get_info\r
+       gtk_preview_get_type\r
+       gtk_preview_get_visual\r
+       gtk_preview_new\r
+       gtk_preview_put\r
+       gtk_preview_reset\r
+       gtk_preview_set_color_cube\r
+       gtk_preview_set_dither\r
+       gtk_preview_set_expand\r
+       gtk_preview_set_gamma\r
+       gtk_preview_set_install_cmap\r
+       gtk_preview_set_reserved\r
+       gtk_preview_size\r
+       gtk_preview_uninit\r
+       gtk_progress_bar_get_type\r
+       gtk_progress_bar_new\r
+       gtk_progress_bar_new_with_adjustment\r
+       gtk_progress_bar_set_activity_blocks\r
+       gtk_progress_bar_set_activity_step\r
+       gtk_progress_bar_set_bar_style\r
+       gtk_progress_bar_set_discrete_blocks\r
+       gtk_progress_bar_set_orientation\r
+       gtk_progress_bar_update\r
+       gtk_progress_configure\r
+       gtk_progress_get_current_percentage\r
+       gtk_progress_get_current_text\r
+       gtk_progress_get_percentage_from_value\r
+       gtk_progress_get_text_from_value\r
+       gtk_progress_get_type\r
+       gtk_progress_get_value\r
+       gtk_progress_set_activity_mode\r
+       gtk_progress_set_adjustment\r
+       gtk_progress_set_format_string\r
+       gtk_progress_set_percentage\r
+       gtk_progress_set_show_text\r
+       gtk_progress_set_text_alignment\r
+       gtk_progress_set_value\r
+       gtk_quit_add\r
+       gtk_quit_add_destroy\r
+       gtk_quit_add_full\r
+       gtk_quit_remove\r
+       gtk_quit_remove_by_data\r
+       gtk_radio_button_get_type\r
+       gtk_radio_button_group\r
+       gtk_radio_button_new\r
+       gtk_radio_button_new_from_widget\r
+       gtk_radio_button_new_with_label\r
+       gtk_radio_button_new_with_label_from_widget\r
+       gtk_radio_button_set_group\r
+       gtk_radio_menu_item_get_type\r
+       gtk_radio_menu_item_group\r
+       gtk_radio_menu_item_new\r
+       gtk_radio_menu_item_new_with_label\r
+       gtk_radio_menu_item_set_group\r
+       gtk_range_default_hmotion\r
+       gtk_range_default_hslider_update\r
+       gtk_range_default_htrough_click\r
+       gtk_range_default_vmotion\r
+       gtk_range_default_vslider_update\r
+       gtk_range_default_vtrough_click\r
+       gtk_range_draw_background\r
+       gtk_range_draw_slider\r
+       gtk_range_draw_step_back\r
+       gtk_range_draw_step_forw\r
+       gtk_range_draw_trough\r
+       gtk_range_get_adjustment\r
+       gtk_range_get_type\r
+       gtk_range_set_adjustment\r
+       gtk_range_set_update_policy\r
+       gtk_range_slider_update\r
+       gtk_range_trough_click\r
+       gtk_rc_add_class_style\r
+       gtk_rc_add_default_file\r
+       gtk_rc_add_widget_class_style\r
+       gtk_rc_add_widget_name_style\r
+       gtk_rc_find_pixmap_in_path\r
+       gtk_rc_get_default_files\r
+       gtk_rc_get_style\r
+       gtk_rc_init\r
+       gtk_rc_parse\r
+       gtk_rc_parse_color\r
+       gtk_rc_parse_priority\r
+       gtk_rc_parse_state\r
+       gtk_rc_parse_string\r
+       gtk_rc_reparse_all\r
+       gtk_rc_set_default_files\r
+       gtk_rc_set_image_loader\r
+       gtk_ruler_draw_pos\r
+       gtk_ruler_draw_ticks\r
+       gtk_ruler_get_type\r
+       gtk_ruler_set_metric\r
+       gtk_ruler_set_range\r
+       gtk_scale_draw_value\r
+       gtk_scale_get_type\r
+       gtk_scale_get_value_width\r
+       gtk_scale_set_digits\r
+       gtk_scale_set_draw_value\r
+       gtk_scale_set_value_pos\r
+       gtk_scrollbar_get_type\r
+       gtk_scrolled_window_add_with_viewport\r
+       gtk_scrolled_window_get_hadjustment\r
+       gtk_scrolled_window_get_type\r
+       gtk_scrolled_window_get_vadjustment\r
+       gtk_scrolled_window_new\r
+       gtk_scrolled_window_set_hadjustment\r
+       gtk_scrolled_window_set_placement\r
+       gtk_scrolled_window_set_policy\r
+       gtk_scrolled_window_set_vadjustment\r
+       gtk_selection_add_target\r
+       gtk_selection_add_targets\r
+       gtk_selection_clear\r
+       gtk_selection_convert\r
+       gtk_selection_data_copy\r
+       gtk_selection_data_free\r
+       gtk_selection_data_set\r
+       gtk_selection_incr_event\r
+       gtk_selection_notify\r
+       gtk_selection_owner_set\r
+       gtk_selection_property_notify\r
+       gtk_selection_remove_all\r
+       gtk_selection_request\r
+       gtk_separator_get_type\r
+       gtk_set_locale\r
+       gtk_signal_add_emission_hook\r
+       gtk_signal_add_emission_hook_full\r
+       gtk_signal_connect\r
+       gtk_signal_connect_after\r
+       gtk_signal_connect_full\r
+       gtk_signal_connect_object\r
+       gtk_signal_connect_object_after\r
+       gtk_signal_connect_object_while_alive\r
+       gtk_signal_connect_while_alive\r
+       gtk_signal_disconnect\r
+       gtk_signal_disconnect_by_data\r
+       gtk_signal_disconnect_by_func\r
+       gtk_signal_emit\r
+       gtk_signal_emit_by_name\r
+       gtk_signal_emit_stop\r
+       gtk_signal_emit_stop_by_name\r
+       gtk_signal_emitv\r
+       gtk_signal_emitv_by_name\r
+       gtk_signal_handler_block\r
+       gtk_signal_handler_block_by_data\r
+       gtk_signal_handler_block_by_func\r
+       gtk_signal_handler_pending\r
+       gtk_signal_handler_pending_by_func\r
+       gtk_signal_handler_pending_by_id\r
+       gtk_signal_handler_unblock\r
+       gtk_signal_handler_unblock_by_data\r
+       gtk_signal_handler_unblock_by_func\r
+       gtk_signal_init\r
+       gtk_signal_lookup\r
+       gtk_signal_n_emissions\r
+       gtk_signal_n_emissions_by_name\r
+       gtk_signal_name\r
+       gtk_signal_new\r
+       gtk_signal_newv\r
+       gtk_signal_query\r
+       gtk_signal_remove_emission_hook\r
+       gtk_socket_new\r
+       gtk_socket_steal\r
+       gtk_spin_button_configure\r
+       gtk_spin_button_get_adjustment\r
+       gtk_spin_button_get_type\r
+       gtk_spin_button_get_value_as_float\r
+       gtk_spin_button_get_value_as_int\r
+       gtk_spin_button_new\r
+       gtk_spin_button_set_adjustment\r
+       gtk_spin_button_set_digits\r
+       gtk_spin_button_set_numeric\r
+       gtk_spin_button_set_shadow_type\r
+       gtk_spin_button_set_snap_to_ticks\r
+       gtk_spin_button_set_update_policy\r
+       gtk_spin_button_set_value\r
+       gtk_spin_button_set_wrap\r
+       gtk_spin_button_spin\r
+       gtk_statusbar_get_context_id\r
+       gtk_statusbar_get_type\r
+       gtk_statusbar_new\r
+       gtk_statusbar_pop\r
+       gtk_statusbar_push\r
+       gtk_statusbar_remove\r
+       gtk_style_apply_default_background\r
+       gtk_style_attach\r
+       gtk_style_copy\r
+       gtk_style_detach\r
+       gtk_style_new\r
+       gtk_style_ref\r
+       gtk_style_set_background\r
+       gtk_style_unref\r
+       gtk_table_attach\r
+       gtk_table_attach_defaults\r
+       gtk_table_get_type\r
+       gtk_table_new\r
+       gtk_table_resize\r
+       gtk_table_set_col_spacing\r
+       gtk_table_set_col_spacings\r
+       gtk_table_set_homogeneous\r
+       gtk_table_set_row_spacing\r
+       gtk_table_set_row_spacings\r
+       gtk_tearoff_menu_item_get_type\r
+       gtk_tearoff_menu_item_new\r
+       gtk_text_backward_delete\r
+       gtk_text_forward_delete\r
+       gtk_text_freeze\r
+       gtk_text_get_length\r
+       gtk_text_get_point\r
+       gtk_text_get_type\r
+       gtk_text_insert\r
+       gtk_text_new\r
+       gtk_text_set_adjustments\r
+       gtk_text_set_editable\r
+       gtk_text_set_point\r
+       gtk_text_set_word_wrap\r
+       gtk_text_thaw\r
+       gtk_timeout_add\r
+       gtk_timeout_add_full\r
+       gtk_timeout_remove\r
+       gtk_tips_query_get_type\r
+       gtk_tips_query_new\r
+       gtk_tips_query_set_caller\r
+       gtk_tips_query_set_labels\r
+       gtk_tips_query_start_query\r
+       gtk_tips_query_stop_query\r
+       gtk_toggle_button_get_active\r
+       gtk_toggle_button_get_type\r
+       gtk_toggle_button_new\r
+       gtk_toggle_button_new_with_label\r
+       gtk_toggle_button_set_active\r
+       gtk_toggle_button_set_mode\r
+       gtk_toggle_button_toggled\r
+       gtk_toolbar_append_element\r
+       gtk_toolbar_append_item\r
+       gtk_toolbar_append_space\r
+       gtk_toolbar_append_widget\r
+       gtk_toolbar_get_button_relief\r
+       gtk_toolbar_get_type\r
+       gtk_toolbar_insert_element\r
+       gtk_toolbar_insert_item\r
+       gtk_toolbar_insert_space\r
+       gtk_toolbar_insert_widget\r
+       gtk_toolbar_new\r
+       gtk_toolbar_prepend_element\r
+       gtk_toolbar_prepend_item\r
+       gtk_toolbar_prepend_space\r
+       gtk_toolbar_prepend_widget\r
+       gtk_toolbar_set_button_relief\r
+       gtk_toolbar_set_orientation\r
+       gtk_toolbar_set_space_size\r
+       gtk_toolbar_set_space_style\r
+       gtk_toolbar_set_style\r
+       gtk_toolbar_set_tooltips\r
+       gtk_tooltips_data_get\r
+       gtk_tooltips_disable\r
+       gtk_tooltips_enable\r
+       gtk_tooltips_force_window\r
+       gtk_tooltips_get_type\r
+       gtk_tooltips_new\r
+       gtk_tooltips_set_colors\r
+       gtk_tooltips_set_delay\r
+       gtk_tooltips_set_tip\r
+       gtk_trace_referencing\r
+       gtk_tree_append\r
+       gtk_tree_child_position\r
+       gtk_tree_clear_items\r
+       gtk_tree_get_type\r
+       gtk_tree_insert\r
+       gtk_tree_item_collapse\r
+       gtk_tree_item_deselect\r
+       gtk_tree_item_expand\r
+       gtk_tree_item_get_type\r
+       gtk_tree_item_new\r
+       gtk_tree_item_new_with_label\r
+       gtk_tree_item_remove_subtree\r
+       gtk_tree_item_select\r
+       gtk_tree_item_set_subtree\r
+       gtk_tree_new\r
+       gtk_tree_prepend\r
+       gtk_tree_remove_items\r
+       gtk_tree_select_child\r
+       gtk_tree_select_item\r
+       gtk_tree_set_selection_mode\r
+       gtk_tree_set_view_lines\r
+       gtk_tree_set_view_mode\r
+       gtk_tree_unselect_child\r
+       gtk_tree_unselect_item\r
+       gtk_true\r
+       gtk_type_check_class_cast\r
+       gtk_type_check_object_cast\r
+       gtk_type_children_types\r
+       gtk_type_class\r
+       gtk_type_describe_heritage\r
+       gtk_type_describe_tree\r
+       gtk_type_enum_find_value\r
+       gtk_type_enum_get_values\r
+       gtk_type_flags_find_value\r
+       gtk_type_flags_get_values\r
+       gtk_type_free\r
+       gtk_type_from_name\r
+       gtk_type_get_varargs_type\r
+       gtk_type_init\r
+       gtk_type_is_a\r
+       gtk_type_name\r
+       gtk_type_new\r
+       gtk_type_parent\r
+       gtk_type_parent_class\r
+       gtk_type_register_enum\r
+       gtk_type_register_flags\r
+       gtk_type_set_chunk_alloc\r
+       gtk_type_set_varargs_type\r
+       gtk_type_unique\r
+       gtk_vbox_get_type\r
+       gtk_vbox_new\r
+       gtk_vbutton_box_get_layout_default\r
+       gtk_vbutton_box_get_spacing_default\r
+       gtk_vbutton_box_get_type\r
+       gtk_vbutton_box_new\r
+       gtk_vbutton_box_set_layout_default\r
+       gtk_vbutton_box_set_spacing_default\r
+       gtk_viewport_get_hadjustment\r
+       gtk_viewport_get_type\r
+       gtk_viewport_get_vadjustment\r
+       gtk_viewport_new\r
+       gtk_viewport_set_hadjustment\r
+       gtk_viewport_set_shadow_type\r
+       gtk_viewport_set_vadjustment\r
+       gtk_vpaned_get_type\r
+       gtk_vpaned_new\r
+       gtk_vruler_get_type\r
+       gtk_vruler_new\r
+       gtk_vscale_get_type\r
+       gtk_vscale_new\r
+       gtk_vscrollbar_get_type\r
+       gtk_vscrollbar_new\r
+       gtk_vseparator_get_type\r
+       gtk_vseparator_new\r
+       gtk_widget_accelerator_signal\r
+       gtk_widget_activate\r
+       gtk_widget_add_accelerator\r
+       gtk_widget_class_path\r
+       gtk_widget_destroy\r
+       gtk_widget_destroyed\r
+       gtk_widget_draw\r
+       gtk_widget_draw_default\r
+       gtk_widget_draw_focus\r
+       gtk_widget_ensure_style\r
+       gtk_widget_event\r
+       gtk_widget_get\r
+       gtk_widget_get_ancestor\r
+       gtk_widget_get_child_requisition\r
+       gtk_widget_get_colormap\r
+       gtk_widget_get_default_colormap\r
+       gtk_widget_get_default_style\r
+       gtk_widget_get_default_visual\r
+       gtk_widget_get_events\r
+       gtk_widget_get_extension_events\r
+       gtk_widget_get_name\r
+       gtk_widget_get_parent_window\r
+       gtk_widget_get_pointer\r
+       gtk_widget_get_style\r
+       gtk_widget_get_toplevel\r
+       gtk_widget_get_type\r
+       gtk_widget_get_visual\r
+       gtk_widget_getv\r
+       gtk_widget_grab_default\r
+       gtk_widget_grab_focus\r
+       gtk_widget_hide\r
+       gtk_widget_hide_all\r
+       gtk_widget_hide_on_delete\r
+       gtk_widget_intersect\r
+       gtk_widget_is_ancestor\r
+       gtk_widget_lock_accelerators\r
+       gtk_widget_map\r
+       gtk_widget_new\r
+       gtk_widget_newv\r
+       gtk_widget_path\r
+       gtk_widget_pop_colormap\r
+       gtk_widget_pop_style\r
+       gtk_widget_pop_visual\r
+       gtk_widget_popup\r
+       gtk_widget_push_colormap\r
+       gtk_widget_push_style\r
+       gtk_widget_push_visual\r
+       gtk_widget_queue_draw\r
+       gtk_widget_queue_resize\r
+       gtk_widget_realize\r
+       gtk_widget_ref\r
+       gtk_widget_remove_accelerator\r
+       gtk_widget_remove_accelerators\r
+       gtk_widget_reparent\r
+       gtk_widget_reset_rc_styles\r
+       gtk_widget_restore_default_style\r
+       gtk_widget_set\r
+       gtk_widget_set_default_colormap\r
+       gtk_widget_set_default_style\r
+       gtk_widget_set_default_visual\r
+       gtk_widget_set_events\r
+       gtk_widget_set_extension_events\r
+       gtk_widget_set_name\r
+       gtk_widget_set_parent\r
+       gtk_widget_set_parent_window\r
+       gtk_widget_set_rc_style\r
+       gtk_widget_set_scroll_adjustments\r
+       gtk_widget_set_sensitive\r
+       gtk_widget_set_state\r
+       gtk_widget_set_style\r
+       gtk_widget_set_uposition\r
+       gtk_widget_set_usize\r
+       gtk_widget_setv\r
+       gtk_widget_shape_combine_mask\r
+       gtk_widget_show\r
+       gtk_widget_show_all\r
+       gtk_widget_show_now\r
+       gtk_widget_size_allocate\r
+       gtk_widget_size_request\r
+       gtk_widget_unlock_accelerators\r
+       gtk_widget_unmap\r
+       gtk_widget_unparent\r
+       gtk_widget_unrealize\r
+       gtk_widget_unref\r
+       gtk_window_activate_default\r
+       gtk_window_activate_focus\r
+       gtk_window_add_accel_group\r
+       gtk_window_get_type\r
+       gtk_window_new\r
+       gtk_window_remove_accel_group\r
+       gtk_window_set_default\r
+       gtk_window_set_default_size\r
+       gtk_window_set_focus\r
+       gtk_window_set_geometry_hints\r
+       gtk_window_set_modal\r
+       gtk_window_set_policy\r
+       gtk_window_set_position\r
+       gtk_window_set_title\r
+       gtk_window_set_transient_for\r
+       gtk_window_set_wmclass\r
index 1ffaf69d10c8285aaa25c5c4d862f43acd18c73e..e6f0330d49baccec0999814f6643d9cf8d71dfe4 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include "config.h"
+
+#ifdef HAVE_SYS_TIME_H
 #include <sys/time.h>
+#endif
 #include <string.h>
 #include <stdlib.h>
 #include <time.h>
index 3281a0d5882d4e5826637dc21c31465d03c73fa4..4c6949789d613908616ea9e499b98f069dc4f631 100644 (file)
@@ -2048,10 +2048,19 @@ gtk_drag_source_handle_event (GtkWidget *widget,
            cursor = gtk_drag_get_cursor (event->dnd.context->action);
            if (info->cursor != cursor)
              {
+#if GDK_WINDOWING == GDK_WINDOWING_X11
                XChangeActivePointerGrab (GDK_WINDOW_XDISPLAY (widget->window), 
                                          PointerMotionMask | PointerMotionHintMask | ButtonReleaseMask,
                                          ((GdkCursorPrivate *)cursor)->xcursor,
                                          event->dnd.time);
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+               gdk_pointer_grab (widget->window, FALSE,
+                                 GDK_POINTER_MOTION_MASK |
+                                 GDK_POINTER_MOTION_HINT_MASK |
+                                 GDK_BUTTON_RELEASE_MASK,
+                                 NULL,
+                                 info->cursor, event->dnd.time);
+#endif
                info->cursor = cursor;
              }
            
@@ -2302,8 +2311,8 @@ gtk_drag_source_event_cb (GtkWidget      *widget,
                break;
            }
          
-         if (MAX (abs (site->x - event->motion.x),
-                  abs (site->y - event->motion.y)) > 3)
+         if (MAX (ABS (site->x - event->motion.x),
+                  ABS (site->y - event->motion.y)) > 3)
            {
              GtkDragSourceInfo *info;
              GdkDragContext *context;
index 9b217c65d365f696a15243613b5b803125ae43f5..b1dac5795965debfd8be5e0708a16ee6b1118d2d 100644 (file)
 #include <pwd.h>
 #endif
 
-#ifdef WIN32
-#define STRICT
-#include <windows.h>
-
-#ifdef _MSC_VER
-#ifndef S_ISDIR
-#define S_ISDIR(mode) ((mode)&_S_IFDIR)
-#endif
-#define mkdir(path,mode) mkdir(path)
-#endif
-#endif
-
 #include "fnmatch.h"
 
 #include "gdk/gdkkeysyms.h"
 #include "gtkdialog.h"
 #include "gtkintl.h"
 
+#ifdef WIN32
+#define STRICT
+#include <windows.h>
+
+#ifdef _MSC_VER
+#include <direct.h>
+#ifndef S_ISDIR
+#define S_ISDIR(mode) ((mode)&_S_IFDIR)
+#endif
+#define mkdir(path,mode) mkdir(path)
+#endif
+#endif
+
 #define DIR_LIST_WIDTH   180
 #define DIR_LIST_HEIGHT  180
 #define FILE_LIST_WIDTH  180
index d9fe31c15e115990741cd22c8c5eab08c64aecf7..a4fe9460635669c3239da5f3b10c9cad2ed25770 100644 (file)
@@ -27,6 +27,8 @@
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include       "config.h"
+
 #include       "gtkitemfactory.h"
 #include       "gtk/gtksignal.h"
 #include       "gtk/gtkoptionmenu.h"
 #include       <string.h>
 #include       <sys/stat.h>
 #include       <fcntl.h>
+#ifdef HAVE_UNISTD_H
 #include       <unistd.h>
+#endif
 #include       <stdio.h>
 
+#ifdef _MSC_VER
+#include       <io.h>          /* For _open and _close */
+
+#ifndef S_ISREG
+#define S_ISREG(mode) ((mode)&_S_IFREG)
+#endif
+#endif
 
 
 /* --- defines --- */
@@ -265,12 +276,12 @@ gtk_item_factory_callback_marshal (GtkWidget *widget,
 
   if (data->callback_type == 1)
     {
-      GtkItemFactoryCallback1 func1 = data->func;
+      GtkItemFactoryCallback1 func1 = (GtkItemFactoryCallback1) data->func;
       func1 (data->func_data, data->callback_action, widget);
     }
   else if (data->callback_type == 2)
     {
-      GtkItemFactoryCallback2 func2 = data->func;
+      GtkItemFactoryCallback2 func2 = (GtkItemFactoryCallback2) data->func;
       func2 (widget, data->func_data, data->callback_action);
     }
 }
index 2b55613f2f991a631c0228689cceeb61168adfba..34af8ad0679426ac7b43cc496635ab738ccc30c6 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include "gdk/gdkx.h"
+
 #include "gtklayout.h"
 #include "gtksignal.h"
 #include "gtkprivate.h"
-#include "gdk/gdkx.h"
 
 typedef struct _GtkLayoutAdjData GtkLayoutAdjData;
 typedef struct _GtkLayoutChild   GtkLayoutChild;
@@ -868,6 +869,8 @@ gtk_layout_expose_area (GtkLayout    *layout,
     }
 }
 
+#if GDK_WINDOWING == GDK_WINDOWING_X11
+
 /* This function is used to find events to process while scrolling
  */
 
@@ -884,6 +887,8 @@ gtk_layout_expose_predicate (Display *display,
     return False;
 }
 
+#endif /* X11 */
+
 /* This is the main routine to do the scrolling. Scrolling is
  * done by "Guffaw" scrolling, as in the Mozilla XFE, with
  * a few modifications.
@@ -915,8 +920,9 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
                               GtkLayout     *layout)
 {
   GtkWidget *widget;
+#if GDK_WINDOWING == GDK_WINDOWING_X11
   XEvent xevent;
-  
+#endif
   gint dx, dy;
 
   widget = GTK_WIDGET (layout);
@@ -1049,6 +1055,8 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
    */
 
   gdk_flush();
+
+#if GDK_WINDOWING == GDK_WINDOWING_X11
   while (XCheckIfEvent(GDK_WINDOW_XDISPLAY (layout->bin_window),
                       &xevent,
                       gtk_layout_expose_predicate,
@@ -1082,6 +1090,9 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
            }
        }
     }
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+  /* XXX Not implemented */
+#endif
 }
 
 /* The main event filter. Actually, we probably don't really need
@@ -1099,6 +1110,8 @@ gtk_layout_filter (GdkXEvent *gdk_xevent,
                   GdkEvent  *event,
                   gpointer   data)
 {
+#if GDK_WINDOWING == GDK_WINDOWING_X11
+
   XEvent *xevent;
   GtkLayout *layout;
 
@@ -1131,6 +1144,9 @@ gtk_layout_filter (GdkXEvent *gdk_xevent,
        }
       break;
     }
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+  /* XXX Not implemented */
+#endif
   
   return GDK_FILTER_CONTINUE;
 }
@@ -1144,6 +1160,7 @@ gtk_layout_main_filter (GdkXEvent *gdk_xevent,
                        GdkEvent  *event,
                        gpointer   data)
 {
+#if GDK_WINDOWING == GDK_WINDOWING_X11
   XEvent *xevent;
   GtkLayout *layout;
 
@@ -1169,7 +1186,9 @@ gtk_layout_main_filter (GdkXEvent *gdk_xevent,
 
       return GDK_FILTER_REMOVE;
     }
-
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+  /* XXX Not implemented */
+#endif
   
   return GDK_FILTER_CONTINUE;
 }
index 3c3523ea2cf906d8e1c970235e5b1c1540f57f2e..aa6ba38f58e9a6a97305cb1ebc7ad107cb5dcc83 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include "gdk/gdkx.h"          /* For GDK_WINDOWING */
+
+#if GDK_WINDOWING == GDK_WINDOWING_X11
 #include <X11/Xlocale.h>       /* so we get the right setlocale */
+#else
+#include <locale.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -233,7 +239,7 @@ gtk_init_check (int  *argc,
       gchar **modules, **as;
 
 #ifndef __EMX__
-      modules = g_strsplit (env_string, ":", -1);
+      modules = g_strsplit (env_string, G_SEARCHPATH_SEPARATOR_S, -1);
 #else
       modules = g_strsplit (env_string, ";", -1);
 #endif
@@ -354,14 +360,11 @@ gtk_init_check (int        *argc,
       module_name = slist->data;
       slist->data = NULL;
 #ifndef __EMX__
-      if (!(module_name[0] == '/' ||
-           (module_name[0] == 'l' &&
-            module_name[1] == 'i' &&
-            module_name[2] == 'b')))
+      if (!g_path_is_absolute (module_name))
        {
          gchar *old = module_name;
          
-         module_name = g_strconcat ("lib", module_name, ".so", NULL);
+         module_name = g_module_build_path (NULL, module_name);
          g_free (old);
        }
 #else
index 44629283ad22198f64cbb42420102fded3873e45..90675b7fe97add437955141968d89167a602fb18 100644 (file)
@@ -56,11 +56,21 @@ typedef gint        (*GtkKeySnoopFunc)      (GtkWidget      *grab_widget,
 
 /* Gtk version.
  */
-extern const guint gtk_major_version;
-extern const guint gtk_minor_version;
-extern const guint gtk_micro_version;
-extern const guint gtk_binary_age;
-extern const guint gtk_interface_age;
+#ifdef NATIVE_WIN32
+#ifdef GTK_COMPILATION
+#define GTKMAIN_C_VAR __declspec(dllexport)
+#else
+#define GTKMAIN_C_VAR __declspec(dllimport) extern
+#endif
+#else
+#define GTKMAIN_C_VAR extern
+#endif
+
+GTKMAIN_C_VAR const guint gtk_major_version;
+GTKMAIN_C_VAR const guint gtk_minor_version;
+GTKMAIN_C_VAR const guint gtk_micro_version;
+GTKMAIN_C_VAR const guint gtk_binary_age;
+GTKMAIN_C_VAR const guint gtk_interface_age;
 gchar* gtk_check_version (guint        required_major,
                          guint required_minor,
                          guint required_micro);
index e2ad46ef9d851ec49bb4d79eb91dab9f4676e3cc..cf7506e32136a96612c33377eeee81c810f1e4bd 100644 (file)
@@ -271,9 +271,13 @@ gtk_plug_key_press_event (GtkWidget   *widget,
              gtk_window_set_focus (GTK_WINDOW (widget), NULL);
 
              gdk_error_trap_push ();
+#if GDK_WINDOWING == GDK_WINDOWING_X11
              XSetInputFocus (GDK_DISPLAY (),
                              GDK_WINDOW_XWINDOW (plug->socket_window),
                              RevertToParent, event->time);
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+             SetFocus (GDK_WINDOW_XWINDOW (plug->socket_window));
+#endif
              gdk_flush ();
              gdk_error_trap_pop ();
 
@@ -292,6 +296,7 @@ gtk_plug_key_press_event (GtkWidget   *widget,
 static void
 gtk_plug_forward_key_press (GtkPlug *plug, GdkEventKey *event)
 {
+#if GDK_WINDOWING == GDK_WINDOWING_X11
   XEvent xevent;
   
   xevent.xkey.type = KeyPress;
@@ -316,6 +321,147 @@ gtk_plug_forward_key_press (GtkPlug *plug, GdkEventKey *event)
              False, NoEventMask, &xevent);
   gdk_flush ();
   gdk_error_trap_pop ();
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+  /* This is pretty bogus, and not tested at all. */
+  WPARAM wParam;
+  LPARAM lParam;
+  gboolean no_WM_CHAR = TRUE;
+
+  lParam = 0;
+  switch (event->keyval)
+    {
+    case GDK_Cancel:
+      wParam = VK_CANCEL; break;
+    case GDK_BackSpace:
+      wParam = VK_BACK; break;
+    case GDK_Tab:
+      wParam = VK_TAB; break;
+    case GDK_Clear:
+      wParam = VK_CLEAR; break;
+    case GDK_Return:
+      wParam = VK_RETURN; break;
+    case GDK_Shift_L:
+      wParam = VK_SHIFT; break;
+    case GDK_Control_L:
+      wParam = VK_CONTROL; break;
+    case GDK_Control_R:
+      wParam = VK_CONTROL; lParam |= 0x01000000; break;
+    case GDK_Alt_L:
+      wParam = VK_MENU; break;
+    case GDK_Alt_R:
+      wParam = VK_MENU; lParam |= 0x01000000; break;
+    case GDK_Pause:
+      wParam = VK_PAUSE; break;
+    case GDK_Caps_Lock:
+      wParam = VK_CAPITAL; break;
+    case GDK_Escape:
+      wParam = VK_ESCAPE; break;
+    case GDK_Prior:
+      wParam = VK_PRIOR; break;
+    case GDK_Next:
+      wParam = VK_NEXT; break;
+    case GDK_End:
+      wParam = VK_END; break;
+    case GDK_Home:
+      wParam = VK_HOME; break;
+    case GDK_Left:
+      wParam = VK_LEFT; break;
+    case GDK_Up:
+      wParam = VK_UP; break;
+    case GDK_Right:
+      wParam = VK_RIGHT; break;
+    case GDK_Down:
+      wParam = VK_DOWN; break;
+    case GDK_Select:
+      wParam = VK_SELECT; break;
+    case GDK_Print:
+      wParam = VK_PRINT; break;
+    case GDK_Execute:
+      wParam = VK_EXECUTE; break;
+    case GDK_Insert:
+      wParam = VK_INSERT; break;
+    case GDK_Delete:
+      wParam = VK_DELETE; break;
+    case GDK_Help:
+      wParam = VK_HELP; break;
+    case GDK_KP_0:
+      wParam = VK_NUMPAD0; break;
+    case GDK_KP_1:
+      wParam = VK_NUMPAD1; break;
+    case GDK_KP_2:
+      wParam = VK_NUMPAD2; break;
+    case GDK_KP_3:
+      wParam = VK_NUMPAD3; break;
+    case GDK_KP_4:
+      wParam = VK_NUMPAD4; break;
+    case GDK_KP_5:
+      wParam = VK_NUMPAD5; break;
+    case GDK_KP_6:
+      wParam = VK_NUMPAD6; break;
+    case GDK_KP_7:
+      wParam = VK_NUMPAD7; break;
+    case GDK_KP_8:
+      wParam = VK_NUMPAD8; break;
+    case GDK_KP_9:
+      wParam = VK_NUMPAD9; break;
+    case GDK_KP_Multiply:
+      wParam = VK_MULTIPLY; break;
+    case GDK_KP_Add:
+      wParam = VK_ADD; break;
+    case GDK_KP_Separator:
+      wParam = VK_SEPARATOR; break;
+    case GDK_KP_Subtract:
+      wParam = VK_SUBTRACT; break;
+    case GDK_KP_Decimal:
+      wParam = VK_DECIMAL; break;
+    case GDK_KP_Divide:
+      wParam = VK_DIVIDE; break;
+    case GDK_F1:
+      wParam = VK_F1; break;
+    case GDK_F2:
+      wParam = VK_F2; break;
+    case GDK_F3:
+      wParam = VK_F3; break;
+    case GDK_F4:
+      wParam = VK_F4; break;
+    case GDK_F5:
+      wParam = VK_F5; break;
+    case GDK_F6:
+      wParam = VK_F6; break;
+    case GDK_F7:
+      wParam = VK_F7; break;
+    case GDK_F8:
+      wParam = VK_F8; break;
+    case GDK_F9:
+      wParam = VK_F9; break;
+    case GDK_F10:
+      wParam = VK_F10; break;
+    case GDK_F11:
+      wParam = VK_F11; break;
+    case GDK_F12:
+      wParam = VK_F12; break;
+    case GDK_F13:
+      wParam = VK_F13; break;
+    case GDK_F14:
+      wParam = VK_F14; break;
+    case GDK_F15:
+      wParam = VK_F15; break;
+    case GDK_F16:
+      wParam = VK_F16; break;
+    default:
+      wParam = event->keyval;
+      no_WM_CHAR = FALSE;
+      break;
+    }
+  
+  PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window),
+              WM_KEYDOWN, wParam, lParam);
+  if (!no_WM_CHAR)
+    PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window),
+                WM_CHAR, wParam, lParam);
+  PostMessage (GDK_WINDOW_XWINDOW (plug->socket_window),
+              WM_KEYUP, wParam, lParam);
+#endif
 }
 
 /* Copied from Window, Ughh */
@@ -422,6 +568,7 @@ gtk_plug_set_focus (GtkWindow *window,
 
   if (focus && !GTK_WIDGET_HAS_FOCUS(window))
     {
+#if GDK_WINDOWING == GDK_WINDOWING_X11
       XEvent xevent;
 
       xevent.xfocus.type = FocusIn;
@@ -436,5 +583,8 @@ gtk_plug_set_focus (GtkWindow *window,
                  False, NoEventMask, &xevent);
       gdk_flush ();
       gdk_error_trap_pop ();
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+      /* XXX Not implemented */
+#endif
     }
 }
index 05dd3432feea039bca2880298659952738c39176..b32210a711b211c61d228f853e6a18d2377eeb27 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include "config.h"
 
 #include <math.h>
 #include <string.h>
 #include <sys/types.h>
+#ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
+#endif
 #include "gdk/gdkx.h"
 #include "gdk/gdkrgb.h"
 #include "gtkpreview.h"
index 1c2b98936350e52af14710f825859354feb37da2..a01f72edf386f8fc46aac3b213b3f0d99c1d07f5 100644 (file)
@@ -999,6 +999,8 @@ gtk_range_motion_notify (GtkWidget      *widget,
 
       if (event->is_hint || (event->window != range->slider))
        gdk_window_get_pointer (range->slider, &x, &y, &mods);
+      else
+       mods = event->state;
 
       switch (range->button)
        {
index 8327eeb09e5671c10ee07f2a303516ce1cea1a7a..519422f562085cd9275cbaa33c5e5f07d7edb0a1 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
  */
 
+#include "config.h"
+
+#include "gdk/gdkx.h"
+
+#if GDK_WINDOWING == GDK_WINDOWING_X11
 #include <X11/Xlocale.h>       /* so we get the right setlocale */
+#else
+#include <locale.h>
+#endif
 #include <ctype.h>
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <sys/stat.h>
+#ifdef HAVE_SYS_PARAM_H
 #include <sys/param.h>
+#endif
 #include <fcntl.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 
+#ifdef _MSC_VER
+#include <io.h>
+#endif
+
 #include "gtkrc.h"
 #include "gtkbindings.h"
 #include "gtkthemes.h"
@@ -113,7 +129,7 @@ static void        gtk_rc_add_initial_default_files  (void);
 static const GScannerConfig    gtk_rc_scanner_config =
 {
   (
-   " \t\n"
+   " \t\r\n"
    )                   /* cset_skip_characters */,
   (
    G_CSET_a_2_z
@@ -210,16 +226,49 @@ static GtkImageLoader image_loader = NULL;
 /* RC file handling */
 
 
+#ifdef NATIVE_WIN32
+
+static gchar *
+get_gtk_sysconf_directory ()
+{
+  static gchar gtk_sysconf_dir[200];
+  gchar win_dir[100];
+
+  GetWindowsDirectory (win_dir, sizeof (win_dir));
+  sprintf (gtk_sysconf_dir, "%s\\gtk", win_dir);
+  return gtk_sysconf_dir;
+}
+
+static gchar *
+get_themes_directory ()
+{
+  /* We really should fetch this from the Registry. The GIMP
+   * installation program stores the Themes installation
+   * directory in HKLM\Software\GNU\GTk+\Themes\InstallDirectory.
+   * Later.
+   */
+  static gchar themes_dir[200];
+
+  sprintf (themes_dir, "%s\\themes", get_gtk_sysconf_directory ());
+  return themes_dir;
+}
+
+#endif
 gchar *
 gtk_rc_get_theme_dir(void)
 {
   gchar *var, *path;
 
+#ifndef NATIVE_WIN32
   var = getenv("GTK_DATA_PREFIX");
   if (var)
     path = g_strdup_printf("%s%s", var, "/share/themes");
   else
     path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/themes");
+#else
+  path = g_strdup (get_themes_directory ());
+#endif
 
   return path;
 }
@@ -229,11 +278,15 @@ gtk_rc_get_module_dir(void)
 {
   gchar *var, *path;
 
+#ifndef NATIVE_WIN32
   var = getenv("GTK_EXE_PREFIX");
   if (var)
     path = g_strdup_printf("%s%s", var, "/lib/gtk/themes/engines");
   else
     path = g_strdup_printf("%s%s", GTK_EXE_PREFIX, "/lib/gtk/themes/engines");
+#else
+  path = g_strdup_printf ("%s%s", get_themes_directory (), "\\engines");
+#endif
 
   return path;
 }
@@ -244,18 +297,24 @@ gtk_rc_append_default_pixmap_path(void)
   gchar *var, *path;
   gint n;
 
+#ifndef NATIVE_WIN32
   var = getenv("GTK_DATA_PREFIX");
   if (var)
     path = g_strdup_printf("%s%s", var, "/share/gtk/themes");
   else
     path = g_strdup_printf("%s%s", GTK_DATA_PREFIX, "/share/gtk/themes");
+#else
+  path = g_strdup (get_themes_directory ());
+#endif      
   
   for (n = 0; pixmap_path[n]; n++) ;
   if (n >= GTK_RC_MAX_PIXMAP_PATHS - 1)
-    return;
-  pixmap_path[n++] = g_strdup(path);
+    {
+      g_free (path);
+      return;
+    }
+  pixmap_path[n++] = path;
   pixmap_path[n] = NULL;
-  g_free(path);
 }
 
 static void
@@ -280,20 +339,28 @@ gtk_rc_append_default_module_path(void)
   if (n >= GTK_RC_MAX_MODULE_PATHS - 1)
     return;
   
+#ifndef NATIVE_WIN32
   var = getenv("GTK_EXE_PREFIX");
   if (var)
     path = g_strdup_printf("%s%s", var, "/lib/gtk/themes/engines");
   else
     path = g_strdup_printf("%s%s", GTK_EXE_PREFIX, "/lib/gtk/themes/engines");
-  module_path[n++] = g_strdup(path);
-  g_free(path);
+#else
+  path = g_strdup_printf ("%s%s", get_themes_directory (), "\\engines");
+#endif
+  module_path[n++] = path;
 
-  var = getenv("HOME");
+  var = g_get_home_dir ();
   if (var)
-    path = g_strdup_printf("%s%s", var, ".gtk/lib/themes/engines");
-  module_path[n++] = g_strdup(path);
+    {
+#ifndef NATIVE_WIN32
+      path = g_strdup_printf ("%s%s", var, "/.gtk/lib/themes/engines");
+#else
+      path = g_strdup_printf ("%s%s", var, "\\_gtk\\themes\\engines");
+#endif
+      module_path[n++] = path;
+    }
   module_path[n] = NULL;
-  g_free(path);
 }
 
 static void
@@ -310,10 +377,10 @@ gtk_rc_add_initial_default_files (void)
   gtk_rc_default_files[0] = NULL;
   init = TRUE;
 
-  var = getenv("GTK_RC_FILES");
+  var = g_getenv("GTK_RC_FILES");
   if (var)
     {
-      files = g_strsplit (var, ":", 128);
+      files = g_strsplit (var, G_SEARCHPATH_SEPARATOR_S, 128);
       i=0;
       while (files[i])
        {
@@ -324,13 +391,21 @@ gtk_rc_add_initial_default_files (void)
     }
   else
     {
-      str = g_strdup_printf ("%s%s", GTK_SYSCONFDIR, "/gtk/gtkrc");
+#ifndef NATIVE_WIN32
+      str = g_strdup (GTK_SYSCONFDIR G_DIR_SEPARATOR_S "gtk" G_DIR_SEPARATOR_S "gtkrc");
+#else
+      str = g_strdup_printf ("%s\\gtkrc", get_gtk_sysconf_directory ());
+#endif
       gtk_rc_add_default_file (str);
       g_free (str);
 
-      str = g_strdup_printf ("%s%s", g_get_home_dir (), "/.gtkrc");
-      gtk_rc_add_default_file (str);
-      g_free (str);
+      var = g_get_home_dir ();
+      if (var)
+       {
+         str = g_strdup_printf ("%s" G_DIR_SEPARATOR_S ".gtkrc", var);
+         gtk_rc_add_default_file (str);
+         g_free (str);
+       }
     }
 }
 
@@ -492,7 +567,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload)
     {
       /* Get the absolute pathname */
 
-      if (rc_file->name[0] == '/')
+      if (g_path_is_absolute (rc_file->name))
        rc_file->canonical_name = rc_file->name;
       else
        {
@@ -503,7 +578,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload)
 
          str = g_string_new (cwd);
          g_free (cwd);
-         g_string_append_c (str, '/');
+         g_string_append_c (str, G_DIR_SEPARATOR);
          g_string_append (str, rc_file->name);
          
          rc_file->canonical_name = str->str;
@@ -526,7 +601,7 @@ gtk_rc_parse_file (const gchar *filename, gboolean reload)
          gchar *dir;
          
          dir = g_strdup(rc_file->canonical_name);
-         for (i = strlen(dir) - 1; (i >= 0) && (dir[i] != '/'); i--)
+         for (i = strlen(dir) - 1; (i >= 0) && (dir[i] != G_DIR_SEPARATOR); i--)
            dir[i] = 0;
          gtk_rc_append_pixmap_path(dir);
          g_free(dir);
@@ -1513,7 +1588,8 @@ gtk_rc_find_pixmap_in_path (GScanner *scanner,
   
   for (i = 0; (i < GTK_RC_MAX_PIXMAP_PATHS) && (pixmap_path[i] != NULL); i++)
     {
-      buf = g_strdup_printf ("%s%c%s", pixmap_path[i], '/', pixmap_file);
+      buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s",
+                            pixmap_path[i], pixmap_file);
       
       fd = open (buf, O_RDONLY);
       if (fd >= 0)
@@ -1544,7 +1620,8 @@ gtk_rc_find_module_in_path (const gchar *module_file)
   
   for (i = 0; (i < GTK_RC_MAX_MODULE_PATHS) && (module_path[i] != NULL); i++)
     {
-      buf = g_strdup_printf ("%s%c%s", module_path[i], '/', module_file);
+      buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s",
+                            module_path[i], module_file);
       
       fd = open (buf, O_RDONLY);
       if (fd >= 0)
@@ -1908,7 +1985,7 @@ gtk_rc_parse_pixmap_path_string (gchar *pix_path)
   
   for (end_offset = 0; end_offset <= path_len; end_offset++)
     {
-      if ((buf[end_offset] == ':') ||
+      if ((buf[end_offset] == G_SEARCHPATH_SEPARATOR) ||
          (end_offset == path_len))
        {
          buf[end_offset] = '\0';
@@ -1964,7 +2041,7 @@ gtk_rc_parse_module_path_string (gchar *mod_path)
   
   for (end_offset = 0; end_offset <= path_len; end_offset++)
     {
-      if ((buf[end_offset] == ':') ||
+      if ((buf[end_offset] == G_SEARCHPATH_SEPARATOR) ||
          (end_offset == path_len))
        {
          buf[end_offset] = '\0';
index 39733fad504de5a6756edaba7b2bb51bdf43f031..6ea50d680ebcabf5ed3df5f25f10fe84a721e4bc 100644 (file)
 
 /* Maximum size of a sent chunk, in bytes. Also the default size of
    our buffers */
+#if GDK_WINDOWING == GDK_WINDOWING_WIN32
+/* No chunks on Win32 */
+#define GTK_SELECTION_MAX_SIZE G_MAXINT
+#else
 #define GTK_SELECTION_MAX_SIZE 4000
-
+#endif
 enum {
   INCR,
   MULTIPLE,
index 7a98f48ba57ad01790f13d785cf15c0cf4389f8b..a473213860b016d6731472f719a79a12853201df 100644 (file)
@@ -32,6 +32,8 @@
 #include "gtksocket.h"
 #include "gtkdnd.h"
 
+#if GDK_WINDOWING == GDK_WINDOWING_X11
+
 /* Forward declararations */
 
 static void gtk_socket_class_init               (GtkSocketClass    *klass);
@@ -745,3 +747,20 @@ gtk_socket_filter_func (GdkXEvent *gdk_xevent, GdkEvent *event, gpointer data)
 
   return return_val;
 }
+
+#elif GDK_WINDOWING == GDK_WINDOWING_WIN32
+
+GtkWidget*
+gtk_socket_new ()
+{
+  g_error ("GtkSocket not implemented");
+  return NULL;
+}
+
+void           
+gtk_socket_steal (GtkSocket *socket, guint32 id)
+{
+  g_error ("GtkSocket not implemented");
+}
+
+#endif /* GDK_WINDOWING */
index b92a218ae10fb9624570c221321357a078f71ef3..e39646de8ebe485d123b53290302c809fb0bb216 100644 (file)
@@ -78,13 +78,14 @@ gtk_theme_engine_get (gchar *name)
 
   if (!result)
     {
-       gchar fullname[1024];
+       gchar *fullname;
        gchar *engine_path;
        GModule *library;
       
 #ifndef __EMX__
-       g_snprintf (fullname, 1024, "lib%s.so", name);
+       fullname = g_module_build_path (NULL, name);
 #else
+       fullname = g_malloc (13);
        gen_8_3_dll_name(name, fullname);
 #endif
        engine_path = gtk_rc_find_module_in_path (fullname);
@@ -102,8 +103,10 @@ gtk_theme_engine_get (gchar *name)
           g_warning (_("Unable to locate loadable module in module_path: \"%s\","),
                      fullname);
           
+          g_free (fullname);
           return NULL;
         }
+       g_free (fullname);
        
        /* load the lib */
 
index 3d42f093d5bcd63c736e79539b400e254791003a..ab9df454884a294584de83599443c81a75510d05 100644 (file)
@@ -1,5 +1,5 @@
-#include <gdk/gdkprivate.h>
 #include <gdk/gdk.h>
+#include <gdk/gdkprivate.h>
 #include <gtk/gtk.h>
 #include <gtk/gtkprivate.h>
 #include <gtk/gtkdebug.h>
diff --git a/gtk/makefile.msc b/gtk/makefile.msc
new file mode 100755 (executable)
index 0000000..f662bff
--- /dev/null
@@ -0,0 +1,398 @@
+## Makefile for building the gtk DLL with Microsoft C
+## Use: nmake -f makefile.msc
+
+# Change this to wherever you want to install the DLLs. This directory
+# should be in your PATH.
+BIN = C:\bin
+
+# This is the location of pthreads for Win32, 
+# see http://sourceware.cygnus.com/pthreads-win32/
+PTHREAD_LIB = ..\..\lib\pthread.lib
+PTHREAD_INC = ..\..\include
+
+# Full optimization:
+OPTIMIZE = -Ox
+# Debugging:
+#OPTIMIZE = -Zi
+
+################################################################
+
+# Nothing much configurable below
+
+# cl -? described the options
+# Some files use near as an identifier
+CC = cl -G5 -GF $(OPTIMIZE) -W3 -MD -DHAVE_CONFIG_H -nologo -Dnear=xxnear
+
+# Perl and awk are needed to generate some source files.
+# These generated source files are distribuyted with the Win32 GTk+ source
+# distributions, so don't worry if you don't have perl and awk.
+PERL = perl
+AWK = awk
+
+# MEMCHECKLIB = mcw50.lib
+
+LDFLAGS = /link /machine:ix86 # /debug /debugtype:cv
+INSTALL = copy
+TOUCH = copy makefile.msc+nul
+
+GLIB_VER=1.2
+GTK_VER=1.3
+
+GDK = ..\gdk
+GLIB = ..\..\glib-$(GLIB_VER)
+
+CFLAGS = -I. -I.. -I../gdk -I$(GLIB) -I$(GLIB)\gmodule -DGTK_DISABLE_COMPAT_H
+
+all : \
+       ..\config.h     \
+       gtkfeatures.h   \
+       generated       \
+       gtk-$(GTK_VER).dll\
+       testdnd.exe     \
+       testgtk.exe     \
+       testinput.exe   \
+       testrgb.exe     \
+       testselection.exe \
+       testthreads.exe \
+       simple.exe
+
+install : all
+       $(INSTALL) gtk-$(GTK_VER).dll $(BIN)
+       $(TOUCH) install
+
+gtk_OBJECTS = \
+       fnmatch.obj     \
+       gtkaccelgroup.obj \
+       gtkaccellabel.obj \
+       gtkadjustment.obj \
+       gtkalignment.obj \
+       gtkarg.obj      \
+       gtkarrow.obj    \
+       gtkaspectframe.obj \
+       gtkbbox.obj     \
+       gtkbin.obj      \
+       gtkbindings.obj \
+       gtkbox.obj      \
+       gtkbutton.obj   \
+       gtkcalendar.obj \
+       gtkcheckbutton.obj \
+       gtkcheckmenuitem.obj \
+       gtkclist.obj    \
+       gtkcolorsel.obj \
+       gtkcombo.obj    \
+       gtkcontainer.obj \
+       gtkctree.obj    \
+       gtkcurve.obj    \
+       gtkdata.obj     \
+       gtkdialog.obj   \
+       gtkdnd.obj      \
+       gtkdrawingarea.obj \
+       gtkeditable.obj \
+       gtkentry.obj    \
+       gtkeventbox.obj \
+       gtkfilesel.obj  \
+       gtkfixed.obj    \
+       gtkfontsel.obj  \
+       gtkframe.obj    \
+       gtkgamma.obj    \
+       gtkgc.obj       \
+       gtkhandlebox.obj \
+       gtkhbbox.obj    \
+       gtkhbox.obj     \
+       gtkhpaned.obj   \
+       gtkhruler.obj   \
+       gtkhscale.obj   \
+       gtkhscrollbar.obj \
+       gtkhseparator.obj \
+       gtkimage.obj    \
+       gtkinputdialog.obj \
+       gtkinvisible.obj \
+       gtkitem.obj     \
+       gtkitemfactory.obj \
+       gtklabel.obj    \
+       gtklayout.obj   \
+       gtklist.obj     \
+       gtklistitem.obj \
+       gtkmain.obj     \
+       gtkmarshal.obj  \
+       gtkmenu.obj     \
+       gtkmenubar.obj  \
+       gtkmenufactory.obj \
+       gtkmenuitem.obj \
+       gtkmenushell.obj \
+       gtkmisc.obj     \
+       gtknotebook.obj \
+       gtkobject.obj   \
+       gtkoptionmenu.obj \
+       gtkpacker.obj   \
+       gtkpaned.obj    \
+       gtkpixmap.obj   \
+       gtkplug.obj     \
+       gtkpreview.obj  \
+       gtkprogress.obj \
+       gtkprogressbar.obj \
+       gtkradiobutton.obj \
+       gtkradiomenuitem.obj \
+       gtkrange.obj    \
+       gtkrc.obj       \
+       gtkruler.obj    \
+       gtkscale.obj    \
+       gtkscrollbar.obj \
+       gtkscrolledwindow.obj \
+       gtkselection.obj \
+       gtkseparator.obj \
+       gtksignal.obj   \
+       gtksocket.obj   \
+       gtkspinbutton.obj \
+       gtkstatusbar.obj \
+       gtkstyle.obj    \
+       gtktable.obj    \
+       gtktearoffmenuitem.obj \
+       gtktext.obj     \
+       gtkthemes.obj   \
+       gtktipsquery.obj \
+       gtktogglebutton.obj \
+       gtktoolbar.obj  \
+       gtktooltips.obj \
+       gtktree.obj     \
+       gtktreeitem.obj \
+       gtktypeutils.obj\
+       gtkvbbox.obj    \
+       gtkvbox.obj     \
+       gtkviewport.obj \
+       gtkvpaned.obj   \
+       gtkvruler.obj   \
+       gtkvscale.obj   \
+       gtkvscrollbar.obj \
+       gtkvseparator.obj \
+       gtkwidget.obj   \
+       gtkwindow.obj
+
+# Source headers which are non-autogenerated headers
+source_headers = \
+       gtk.h                   \
+       gtkaccelgroup.h         \
+       gtkaccellabel.h         \
+       gtkadjustment.h         \
+       gtkalignment.h          \
+       gtkarg.h                \
+       gtkarrow.h              \
+       gtkaspectframe.h        \
+       gtkbin.h                \
+       gtkbindings.h           \
+       gtkbbox.h               \
+       gtkbox.h                \
+       gtkbutton.h             \
+       gtkcalendar.h           \
+       gtkcheckbutton.h        \
+       gtkcheckmenuitem.h      \
+       gtkclist.h              \
+       gtkcolorsel.h           \
+       gtkcombo.h              \
+       gtkcompat.h             \
+       gtkcontainer.h          \
+       gtkctree.h              \
+       gtkcurve.h              \
+       gtkdata.h               \
+       gtkdebug.h              \
+       gtkdialog.h             \
+       gtkdnd.h                \
+       gtkdrawingarea.h        \
+       gtkeditable.h           \
+       gtkentry.h              \
+       gtkenums.h              \
+       gtkeventbox.h           \
+       gtkfilesel.h            \
+       gtkfixed.h              \
+       gtkfontsel.h            \
+       gtkframe.h              \
+       gtkgamma.h              \
+       gtkgc.h                 \
+       gtkhandlebox.h          \
+       gtkhbbox.h              \
+       gtkhbox.h               \
+       gtkhpaned.h             \
+       gtkhruler.h             \
+       gtkhscale.h             \
+       gtkhscrollbar.h         \
+       gtkhseparator.h         \
+       gtkimage.h              \
+       gtkinputdialog.h        \
+       gtkintl.h               \
+       gtkinvisible.h          \
+       gtkitem.h               \
+       gtkitemfactory.h        \
+       gtklabel.h              \
+       gtklayout.h             \
+       gtklist.h               \
+       gtklistitem.h           \
+       gtkmain.h               \
+       gtkmenu.h               \
+       gtkmenubar.h            \
+       gtkmenufactory.h        \
+       gtkmenuitem.h           \
+       gtkmenushell.h          \
+       gtkmisc.h               \
+       gtknotebook.h           \
+       gtkobject.h             \
+       gtkoptionmenu.h         \
+       gtkpacker.h             \
+       gtkpaned.h              \
+       gtkpixmap.h             \
+       gtkplug.h               \
+       gtkpreview.h            \
+       gtkprivate.h            \
+       gtkprogress.h           \
+       gtkprogressbar.h        \
+       gtkradiobutton.h        \
+       gtkradiomenuitem.h      \
+       gtkrange.h              \
+       gtkrc.h                 \
+       gtkruler.h              \
+       gtkscale.h              \
+       gtkscrollbar.h          \
+       gtkscrolledwindow.h     \
+       gtkselection.h          \
+       gtkseparator.h          \
+       gtksignal.h             \
+       gtksocket.h             \
+       gtkspinbutton.h         \
+       gtkstyle.h              \
+       gtkstatusbar.h          \
+       gtktable.h              \
+       gtktearoffmenuitem.h    \
+       gtktext.h               \
+       gtkthemes.h             \
+       gtktipsquery.h          \
+       gtktogglebutton.h       \
+       gtktoolbar.h            \
+       gtktooltips.h           \
+       gtktree.h               \
+       gtktreeitem.h           \
+       gtktypeutils.h          \
+       gtkvbbox.h              \
+       gtkvbox.h               \
+       gtkviewport.h           \
+       gtkvpaned.h             \
+       gtkvruler.h             \
+       gtkvscale.h             \
+       gtkvscrollbar.h         \
+       gtkvseparator.h         \
+       gtkwidget.h             \
+       gtkwindow.h
+
+# More headers to use when autogenerating.
+gdk_headers = \
+       ..\gdk\gdktypes.h \
+       ..\gdk\gdkrgb.h
+
+..\config.h : ..\config.h.win32
+       copy ..\config.h.win32 ..\config.h
+
+gtkfeatures.h : gtkfeatures.h.win32
+       copy gtkfeatures.h.win32 gtkfeatures.h
+
+#
+# Generated source files:
+#
+generated : gtk.defs gtktypebuiltins.h gtktypebuiltins_vars.c gtktypebuiltins_ids.c gtktypebuiltins_evals.c gtkmarshal.h gtkmarshal.c
+       $(TOUCH) generated
+
+gtk.defs : makeenums.pl gtk-boxed.defs $(source_headers) $(gdk_headers)
+       $(PERL) makeenums.pl defs $(source_headers) $(gdk_headers) >gd.tmp
+       copy gd.tmp+gtk-boxed.defs gtk.defs
+       @erase gd.tmp
+
+# generate type identifier header (GTK_TYPE_WIDGET_FLAGS)
+gtktypebuiltins.h: gtk.defs maketypes.awk
+       $(AWK) -f maketypes.awk gtk.defs macros >gtktypebuiltins.h
+
+# generate type identifier variables (GTK_TYPE_WIDGET_FLAGS)
+gtktypebuiltins_vars.c: gtk.defs maketypes.awk
+       $(AWK) -f maketypes.awk gtk.defs variables >gtktypebuiltins_vars.c
+
+# generate type entries for type-id registration
+gtktypebuiltins_ids.c: gtk.defs maketypes.awk
+       $(AWK) -f maketypes.awk gtk.defs entries >gtktypebuiltins_ids.c
+
+# generate enum value arrays
+gtktypebuiltins_evals.c: makeenums.pl gtk.defs
+       $(PERL) makeenums.pl arrays $(source_headers) $(gdk_headers) >gtktypebuiltins_evals.c
+
+gtkmarshal.h gtkmarshal.c : gtkmarshal.list genmarshal.pl
+       $(PERL) genmarshal.pl
+       del gtkmarshal.c
+       rename s-gmc gtkmarshal.c
+       del gtkmarshal.h
+       rename s-gmh gtkmarshal.h
+
+#
+# Linking:
+#
+gtk-$(GTK_VER).dll : $(gtk_OBJECTS) gtk.def
+       $(CC) $(CFLAGS) -LD -Fegtk-$(GTK_VER).dll $(gtk_OBJECTS) $(MEMCHECKLIB) $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(GLIB)\gmodule-$(GLIB_VER).lib gdi32.lib user32.lib $(LDFLAGS) /def:gtk.def
+
+# General rule for compiling the objects into the DLL
+.c.obj :
+       $(CC) $(CFLAGS) -GD -c -DGTK_COMPILATION -DG_LOG_DOMAIN=\"Gtk\" $<
+
+#
+# Test programs:
+#
+testdnd.exe : testdnd.obj
+       $(CC) $(CFLAGS) testdnd.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+# Must have separate rules for these objects that don't go in the DLL
+testdnd.obj : testdnd.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testdnd\" testdnd.c
+
+testgtk.exe : testgtk.obj
+       $(CC) $(CFLAGS) testgtk.obj $(MEMCHECKLIB) gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+testgtk.obj : testgtk.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testgtk\" testgtk.c
+
+testinput.exe : testinput.obj
+       $(CC) $(CFLAGS) testinput.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+testinput.obj : testinput.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testinput\" testinput.c
+
+testrgb.exe : testrgb.obj
+       $(CC) $(CFLAGS) testrgb.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+testrgb.obj : testrgb.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testrgb\" testrgb.c
+
+testselection.exe : testselection.obj
+       $(CC) $(CFLAGS) testselection.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+testselection.obj : testselection.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"testselection\" testselection.c
+
+testthreads.exe : testthreads.obj
+       $(CC) $(CFLAGS) testthreads.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(GLIB)\gthread-$(GLIB_VER).lib $(PTHREAD_LIB) $(LDFLAGS)
+
+testthreads.obj : testthreads.c
+       $(CC) $(CFLAGS) -I$(PTHREAD_INC) -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c
+
+simple.exe : simple.obj
+       $(CC) $(CFLAGS) simple.obj gtk-$(GTK_VER).lib $(GDK)\gdk-$(GTK_VER).lib $(GLIB)\glib-$(GLIB_VER).lib $(LDFLAGS)
+
+simple.obj : simple.c
+       $(CC) $(CFLAGS) -c -DG_LOG_DOMAIN=\"simple\" simple.c
+
+# The clean target doesn't remove the generated sources
+clean:
+       del *.exe
+       del *.obj
+       del *.dll
+       del *.lib
+       del *.exp
+       del *.err
+       del *.map
+       del *.sym
+       del *.lk1
+       del *.mk1
+       del *.pdb
+       del *.ilk
index 44fec3f77406359808750b1f7ad30ee4678c0c96..ab951bb9648eed5d4b57b6e4c270fc09ae6d0b08 100644 (file)
@@ -20,7 +20,20 @@ BEGIN {
     }
   
   if (gen_macros)
-    printf ("/* type macros, generated by maketypes.awk */\n\n");
+    {
+      printf ("/* type macros, generated by maketypes.awk */\n");
+      printf ("\n");
+      printf ("#ifdef NATIVE_WIN32\n");
+      printf ("#  ifdef GTK_COMPILATION\n");
+      printf ("#    define GTKTYPEBUILTINS_VAR __declspec(dllexport)\n");
+      printf ("#  else\n");
+      printf ("#    define GTKTYPEBUILTINS_VAR extern __declspec(dllimport)\n");
+      printf ("#  endif\n");
+      printf ("#else\n");
+      printf ("#  define GTKTYPEBUILTINS_VAR extern\n");
+      printf ("#endif\n");
+      printf ("\n");
+    }
   else if (gen_entries)
     printf ("/* type entries, generated by maketypes.awk */\n\n");
   else if (gen_vars)
@@ -56,7 +69,7 @@ function generate (generate_1)
 {
   if (gen_macros)
     {
-      printf ("extern GtkType %s;\n", type_macro);
+      printf ("GTKTYPEBUILTINS_VAR GtkType %s;\n", type_macro);
     }
   if (gen_entries)
     {
index 99cd6eba523de59c045df6302341b151bdd05a35..c629598beee5c960d89b46a6b670b913fe340cb6 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+
+#include <glib.h>
+
 /*
  * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
 /* Note: these #includes differ slightly from the testrgb.c file included
    in the GdkRgb release. */
 
-/* For gettimeofday */
-#include <sys/time.h>
 #include <stdlib.h>
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <string.h>
 
 #include "gtk.h"
@@ -44,24 +48,12 @@ quit_func (GtkWidget *widget, gpointer dummy)
 
 #define WIDTH 320
 #define HEIGHT 200
-
-gdouble
-get_time (void)
-{
-  struct timeval tv;
-  struct timezone tz;
-
-  gettimeofday (&tv, &tz);
-
-  return tv.tv_sec + 1e-6 * tv.tv_usec;
-}
-
 #define NUM_ITERS 100
 
 static void
 testrgb_rgb_test (GtkWidget *drawing_area)
 {
-  guchar buf[WIDTH * HEIGHT * 6];
+  guchar *buf;
   gint i, j;
   gint offset;
   guchar val;
@@ -69,6 +61,9 @@ testrgb_rgb_test (GtkWidget *drawing_area)
   gint x, y;
   gboolean dither;
   int dith_max;
+  GTimer *timer;
+
+  buf = g_malloc (WIDTH * HEIGHT * 6);
 
   val = 0;
   for (j = 0; j < WIDTH * HEIGHT * 6; j++)
@@ -94,9 +89,10 @@ testrgb_rgb_test (GtkWidget *drawing_area)
   else
     dith_max = 1;
 
+  timer = g_timer_new ();
   for (dither = 0; dither < dith_max; dither++)
     {
-      start_time = get_time ();
+      start_time = g_timer_elapsed (timer, NULL);
       for (i = 0; i < NUM_ITERS; i++)
        {
          offset = (rand () % (WIDTH * HEIGHT * 3)) & -4;
@@ -107,7 +103,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
                              GDK_RGB_DITHER_NONE,
                              buf + offset, WIDTH * 3);
        }
-      total_time = get_time () - start_time;
+      total_time = g_timer_elapsed (timer, NULL) - start_time;
       g_print ("Color test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n",
               dither ? " (dithered)" : "",
               total_time,
@@ -117,7 +113,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
 
   for (dither = 0; dither < dith_max; dither++)
     {
-      start_time = get_time ();
+      start_time = g_timer_elapsed (timer, NULL);
       for (i = 0; i < NUM_ITERS; i++)
        {
          offset = (rand () % (WIDTH * HEIGHT)) & -4;
@@ -128,7 +124,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
                               GDK_RGB_DITHER_NONE,
                               buf + offset, WIDTH);
        }
-      total_time = get_time () - start_time;
+      total_time = g_timer_elapsed (timer, NULL) - start_time;
       g_print ("Grayscale test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n",
               dither ? " (dithered)" : "",
               total_time,
index 99cd6eba523de59c045df6302341b151bdd05a35..c629598beee5c960d89b46a6b670b913fe340cb6 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+
+#include <glib.h>
+
 /*
  * Modified by the GTK+ Team and others 1997-1999.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
 /* Note: these #includes differ slightly from the testrgb.c file included
    in the GdkRgb release. */
 
-/* For gettimeofday */
-#include <sys/time.h>
 #include <stdlib.h>
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#endif
 #include <string.h>
 
 #include "gtk.h"
@@ -44,24 +48,12 @@ quit_func (GtkWidget *widget, gpointer dummy)
 
 #define WIDTH 320
 #define HEIGHT 200
-
-gdouble
-get_time (void)
-{
-  struct timeval tv;
-  struct timezone tz;
-
-  gettimeofday (&tv, &tz);
-
-  return tv.tv_sec + 1e-6 * tv.tv_usec;
-}
-
 #define NUM_ITERS 100
 
 static void
 testrgb_rgb_test (GtkWidget *drawing_area)
 {
-  guchar buf[WIDTH * HEIGHT * 6];
+  guchar *buf;
   gint i, j;
   gint offset;
   guchar val;
@@ -69,6 +61,9 @@ testrgb_rgb_test (GtkWidget *drawing_area)
   gint x, y;
   gboolean dither;
   int dith_max;
+  GTimer *timer;
+
+  buf = g_malloc (WIDTH * HEIGHT * 6);
 
   val = 0;
   for (j = 0; j < WIDTH * HEIGHT * 6; j++)
@@ -94,9 +89,10 @@ testrgb_rgb_test (GtkWidget *drawing_area)
   else
     dith_max = 1;
 
+  timer = g_timer_new ();
   for (dither = 0; dither < dith_max; dither++)
     {
-      start_time = get_time ();
+      start_time = g_timer_elapsed (timer, NULL);
       for (i = 0; i < NUM_ITERS; i++)
        {
          offset = (rand () % (WIDTH * HEIGHT * 3)) & -4;
@@ -107,7 +103,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
                              GDK_RGB_DITHER_NONE,
                              buf + offset, WIDTH * 3);
        }
-      total_time = get_time () - start_time;
+      total_time = g_timer_elapsed (timer, NULL) - start_time;
       g_print ("Color test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n",
               dither ? " (dithered)" : "",
               total_time,
@@ -117,7 +113,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
 
   for (dither = 0; dither < dith_max; dither++)
     {
-      start_time = get_time ();
+      start_time = g_timer_elapsed (timer, NULL);
       for (i = 0; i < NUM_ITERS; i++)
        {
          offset = (rand () % (WIDTH * HEIGHT)) & -4;
@@ -128,7 +124,7 @@ testrgb_rgb_test (GtkWidget *drawing_area)
                               GDK_RGB_DITHER_NONE,
                               buf + offset, WIDTH);
        }
-      total_time = get_time () - start_time;
+      total_time = g_timer_elapsed (timer, NULL) - start_time;
       g_print ("Grayscale test%s time elapsed: %.2fs, %.1f fps, %.2f megapixels/s\n",
               dither ? " (dithered)" : "",
               total_time,